这个莫烦视频学习笔记例子二(一)介绍了如何使用 TensorFlow 实现线性回归。
1. 导入 TensorFlow 库
首先要导入 TensorFlow 库,这可以使用如下的语句实现:
“` python
import tensorflow as tf
“`
2. 定义输入数据
接下来需要定义样本数据,包括训练集和测试集。这里示例中会使用一个随机的数据集,可以使用 `numpy` 库生成:
“`python
import numpy as np
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3
“`
其中 `x_data` 是输入数据,`y_data` 是目标输出数据。
3. 定义模型
现在可以定义模型了,这里的模型是一个简单的线性回归模型。与之前的数据定义类似,需要定义输入和输出的占位符:
“` python
x = tf.placeholder(tf.float32, name=’x’)
y = tf.placeholder(tf.float32, name=’y’)
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0), name=’W’)
b = tf.Variable(tf.zeros([1]), name=’b’)
y_pred = W * x + b
“`
其中 `W` 和 `b` 是需要训练的模型参数,使用 `tf.Variable` 定义。`y_pred` 是模型的输出。
4. 定义损失函数
接下来需要定义损失函数,这里使用均方误差(MSE)函数作为损失函数:
“` python
loss = tf.reduce_mean(tf.square(y_pred-y), name=’loss’)
“`
5. 定义优化器
为了训练模型,需要对模型的损失函数进行优化。这里使用梯度下降法作为优化算法:
“` python
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.5)
train_op = optimizer.minimize(loss)
“`
6. 训练模型
现在可以开始训练模型了。首先需要创建一个 Session:
“` python
sess = tf.Session()
“`
然后初始化模型中的所有变量:
“` python
sess.run(tf.global_variables_initializer())
“`
最后,反复运行训练操作,优化模型的参数:
“` python
for i in range(201):
_, loss_val, W_val, b_val = sess.run([train_op, loss, W, b], feed_dict={x: x_data, y: y_data})
if i % 20 == 0:
print("step: %d, loss: %f, W: %f, b: %f" % (i, loss_val, W_val, b_val))
“`
在这段代码中,首先运行了一个训练操作 `train_op`,然后计算损失函数 `loss` 和模型参数 `W` 和 `b` 的值。将 `x_data` 和 `y_data` 喂入模型中进行训练。
7. 测试模型
最后,可以使用测试数据来测试模型预测能力的好坏:
“` python
test_x = np.float32(np.random.rand(1))
test_y = test_x * 0.1 + 0.3
print("test_x is %f, test_y is %f" % (test_x, test_y))
print("prediction is %f" % sess.run(y_pred, feed_dict={x: test_x}))
“`
在这段代码中,首先生成一个随机测试集 `test_x` 和相应的目标值 `test_y`,然后将 `test_x` 喂入模型中计算预测结果 `y_pred`。最后将测试集和预测结果输出。