tensorflow 使用 3 模型學習

模型學習python

import tensorflow as tf
import numpy as np

#  生成 100 個隨機的點
x_data = np.random.rand( 100 )
y_data = x_data * 0.1 + 0.2

# 構造個線性模型
b = tf.Variable( 0.)
k = tf.Variable( 0.)
y = k * x_data + b

# 二次代價函數
loss = tf.reduce_mean( tf.square(y_data-y) )

# 定義一個梯度降低法的優化器
optimizer = tf.train.GradientDescentOptimizer( 0.2 )

# 最小化代價函數
train = optimizer.minimize( loss )
#  loss 越小越接近於上邊的線性模型真實值

# 初始化變量
init = tf.global_variables_initializer()

with tf.Session() as sess:
  sess.run( init )
  for step in range( 201 ):
    sess.run( train )
    
    # 每 20 次打印下
    if step % 20 == 0:
      print( step, sess.run([b, k]) )

  

0   [0.09943417, 0.051246386]
20  [0.19920087, 0.10154804]
40  [0.19950311, 0.10096269]
60  [0.19969101, 0.100598656]
80  [0.19980785, 0.10037227]
100 [0.19988051, 0.100231506]
120 [0.1999257, 0.10014396]
140 [0.1999538, 0.10008951]
160 [0.19997126, 0.10005567]
180 [0.19998214, 0.100034624]
200 [0.19998889, 0.10002153]

  

實驗得出, k , b 的值,無論初次是多少,通過學習後 b 會接近 0.2, a 會接近 0.1dom

相關文章
相關標籤/搜索