今天我們來試試TensorFlow官方推出的教學,實體操作運用Google Colaboratory教你簡單訓練出一個能夠對影像進行分類的神經網路模型。
1.設定TensorFlow
先將TensorFlow匯入程式中
2.匯入資料集
載入並準備MNIST資料集(將樣本資料從整數轉換為浮點數)
3.建構機器學習模型
透過堆疊層來建構tf.keras.Sequential模型
每個樣本都會回傳一個包含logits或log-odds分數的向量(一個類別回傳一個)
tf.nn.softmax函數將這些logits轉換為每個類別的機率
使用losses.SparseCategoricalCrossentropy為訓練定義損失函數,它能夠接受logits向量和True
索引,並為每個樣本傳回一個標量損失
****
(此損失等於true
類別的負對數機率,如果模型確定類別正確,則損失為0)
開始訓練之前,使用Keras Model.compile配置和編譯模型。將optimizer類別設為adam,將loss設定為先前定義的loss_fn函數,並透過將metrics參數設為來accuracy指定要為模型評估的指標。
4.訓練並評估模型
使用Model.fit方法來調適模型參數並最小化損失
(Model.evaluate方法通常在Validation-set或Test-set上檢查模型效能)
(目前的準確率為0.9777
,loss為0.0729
)
5.傳回機率
(封裝經過訓練的模型,並將softmax附加到模型中)