下面將逐步說明完成一個簡單的神經(jīng)網(wǎng)絡(luò)所需的步驟.
1. 構(gòu)造單層神經(jīng)網(wǎng)絡(luò)
首先構(gòu)造一層使用tf.keras.layers.Dense, 這里Dense為全連接層.
import tensorflow as tf
l0 = tf.keras.layers.Dense(units=4, input_shape=[1])
l1 = tf.keras.layers.Dense(units=4)
l2 = tf.keras.layers.Dense(units=1)
-
units表示輸出的維數(shù). -
input_shape表示輸入的維數(shù), 這個參數(shù)在官方文檔中并沒有介紹, 如果刪除也不影響后續(xù)的使用.
2. 確定神經(jīng)網(wǎng)絡(luò)的框架
model = tf.keras.Sequential([l0, l1, l2])
模型由l0到l2組成.
3. 構(gòu)造誤差函數(shù)
model.compile(loss='mean_squared_error',
optimizer=tf.keras.optimizers.Adam(0.1))
-
loss為損失函數(shù) -
optimizer為優(yōu)化函數(shù), 默認(rèn)為rmsprop, 這里設(shè)置為了Adam.
4. 訓(xùn)練
history = model.fit(celsius_q, fahrenheit_a, epochs=500, verbose=False)
這里fit的第一選項為輸入函數(shù), 第二個選項為輸出函數(shù),
-
ephochs表示迭代優(yōu)化的次數(shù).
5. 輸出
訓(xùn)練之后, 使用網(wǎng)絡(luò)進(jìn)行輸出為model.predict()
返回的參數(shù)直接調(diào)用l0.get_weights()