iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 16
0

程式碼:

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.2 + 0.4


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

loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.2)
train = optimizer.minimize(loss)

init = tf.global_variables_initializer()

sess = tf.Session()
sess.run(init)

for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(W), sess.run(b))
        plt.plot(x_data, y_data, 'ro')
        plt.plot(x_data, sess.run(W) * x_data + sess.run(b))
        plt.legend()
        plt.show()

說明:

第1~3行:基本所需函式宣告

第7~8行:使用亂數製造出100個(x,y)的座標點

第11~13行:利用資料x權重+偏差的方式去校正

第15~17行:設定損失函數,最佳化方法等等

第19~22行:初始化我們的session

第24~31行:利用上面的公式去校正我們的線,執行201次,但是我們執行20次印出一次

https://ithelp.ithome.com.tw/upload/images/20180104/20107535pOmBuPp39K.png

https://ithelp.ithome.com.tw/upload/images/20180104/20107535eScTZp68d2.png

https://ithelp.ithome.com.tw/upload/images/20180104/20107535AjDxInTQTm.png

https://ithelp.ithome.com.tw/upload/images/20180104/201075356dwsTL4XCi.png

https://ithelp.ithome.com.tw/upload/images/20180104/20107535YHryxdNbw7.png

結語:

這邊就是簡單的線性回歸。


上一篇
DAY15 常數分配的亂數
下一篇
DAY17 Mnist資料集
系列文
tensorflow python30

尚未有邦友留言

立即登入留言