【tensorflow】初探 tensorflow

  使用 tensorflow 来拟合 y = 0.1*x + 0.3

import tensorflow as tf
import numpy as np

# 创建训练集
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

# 创建 W, b 
W = tf.Variable(tf.random_uniform([1], -1, 1.0))
b = tf.Variable(tf.zeros([1]))
# Forward propagation
y = W * x_data + b

# 计算损失函数
loss = tf.reduce_mean(tf.square(y - y_data))

# 梯度下降法训练优化器
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

# 初始化变量
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for i in range(201):
    sess.run(train)
    if i % 20 == 0:
        print(i, sess.run(W), sess.run(b))

运行结果如下:

0 [-0.37452] [ 0.86556]
20 [-0.03745046] [ 0.38031855]
40 [ 0.06851723] [ 0.31839684]
60 [ 0.09278893] [ 0.30421376]
80 [ 0.09834832] [ 0.30096516]
100 [ 0.0996217] [ 0.30022106]
120 [ 0.09991335] [ 0.30005065]
140 [ 0.09998015] [ 0.30001161]
160 [ 0.09999546] [ 0.30000266]
180 [ 0.09999895] [ 0.30000064]
200 [ 0.09999977] [ 0.30000013]

最终,W = 0.09999977(接近0.1),b = 0.30000013(接近0.3)

猜你喜欢

转载自blog.csdn.net/lionel_fengj/article/details/80484549