iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 18
0
自我挑戰組

Machine Learning 學習筆記系列 第 18

[第十八天] Tensorflow 練習1

  • 分享至 

  • xImage
  •  

今天來認識一下tensorflow的code怎麼寫,跟著練習題走一遍~
參考網站1參考網站2

Tensorflow流程圖

https://www.tensorflow.org/images/tensors_flowing.gif

首先先創建一條線y=0.1x+0.3的data,到時候用tensorflow來尋找斜率(0.1)與bias(0.3)

import tensorflow as tf
import numpy as np

# create data
x_data = np.random.rand(100).astype(np.float32)     # 隨機產生x值
y_data = x_data*0.1 + 0.3

接下來要把tensorflow的模型寫出來

Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))   # 訂一個初始值介於-1~1 ;[1]一維
biases = tf.Variable(tf.zeros([1]))  #初始值給0

y = Weights*x_data + biases

寫出loss function

loss = tf.reduce_mean(tf.square(y-y_data))

反向傳播誤差 選擇最基礎的optimizer:GradientDescent

optimizer = tf.train.GradientDescentOptimizer(0.5)   # learning_rate=0.5
train = optimizer.minimize(loss)

定義初始化

init = tf.global_variables_initializer()

定義好神經網絡後,需要使用session來啟動整個神經網絡

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

最後來跑整個流程201次,並且每跑20次印出結果。

for step in range(201):
    sess.run(train)
    if step % 20 == 0:
        print(step, sess.run(Weights), sess.run(biases))

https://ithelp.ithome.com.tw/upload/images/20181101/20112303TIJT19CCAT.png

可以發現在100次的時候已經抓到很接近斜率(0.099)和bias(0.30037),明天再學習其他例子繼續熟悉tensorflow的結構~/images/emoticon/emoticon31.gif


上一篇
[第十七天] Gradient descent
下一篇
[第19天] Tensorflow 練習2
系列文
Machine Learning 學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言