TensorFlow 2.0 Tutorial: 1. 先搭建一個最簡單的模型

3 月 6-7 日,在 TensorFlow 的 2019 峰會上正式推出了 2.0 Alpha 版本。
新的 TensorFlow,代碼很簡潔,搭建模型更容易,下面通過一個最簡單的模型,來看用 2.0 搭建神經(jīng)網(wǎng)絡(luò)模型的一般流程:

1. 建立一個最簡單的神經(jīng)網(wǎng)絡(luò)

首先用一個很簡單的網(wǎng)絡(luò)來了解一下 TensorFlow 2.0 的工作流程。

例如,我們有一組訓練集,x 和 y 之間滿足這個關(guān)系:
y = (2 * x) - 1

接下來要建立一個最簡單的神經(jīng)網(wǎng)絡(luò),讓它來學習出這種關(guān)系,輸入新的 x ,可以輸出相應的 y。

import tensorflow as tf
import numpy as np
from tensorflow import keras

這個模型超簡單,只有一層,這層只有一個神經(jīng)元,input shape 只是 1.

model = tf.keras.Sequential(
            [keras.layers.Dense(units=1, input_shape=[1])]
            )

然后編譯模型,這里指定兩個函數(shù) loss 和 optimizer。
神經(jīng)網(wǎng)絡(luò)在學習這個關(guān)系時,它先是猜一個系數(shù),比如 y=10x+10,
這樣模型的輸出和實際的結(jié)果就會有一個差距,loss 就是來表示這個差距。
然后神經(jīng)網(wǎng)絡(luò)就用 optimizer 來根據(jù)這個 loss 進行下一步的猜測,它的目標就是讓 loss 越來越小,比如這時變成了 y=5x+5。
就這樣一點點讓 loss 變小,來得到不錯的模型。

model.compile(optimizer='sgd', 
            loss='mean_squared_error')

接下來是數(shù)據(jù),我們用一個很小的例子,x 和 y 之間符合 y = (2 * x) - 1 關(guān)系。

xs = np.array([-1.0,  0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float)

訓練模型,
這里最簡單的方式是用 model.fit,在這一步中模型會用上面提到的過程,開始學習 x 和 y 之間的關(guān)系。
先猜測一組系數(shù),
衡量一下模型的表現(xiàn),
用 optimizer 進行下一組猜測,
執(zhí)行指定的 epoch 次后,得到最后的模型。

model.fit(xs, ys, epochs=500)

模型訓練好后,可以用 model.predict 來預測新的數(shù)據(jù)。

print(model.predict([10.0]))

學習資料:
Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning
https://www.coursera.org/learn/introduction-tensorflow/home/welcome


大家好!
我是 不會停的蝸牛 Alice,
喜歡人工智能,沒事兒寫寫機器學習干貨,
歡迎關(guān)注我!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容