【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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章