文件說明
1. 介紹
TensorFlow 是一個開源的機器學習框架,由谷歌開發和維護。它廣泛應用於各類機器學習任務,包括但不限於影像分類、自然語言處理和時間序列預測。本文將介紹如何使用TensorFlow建立一個簡單的神經網路進行影像分類。
2. 安裝
在開始之前,請確保你已經安裝了TensorFlow。你可以透過以下命令安裝:
pip install tensorflow
3. 資料準備
我們將使用MNIST資料集,這是一個包含手寫數字的經典資料集。以下是載入資料集的程式碼:
import tensorflow as tf
from tensorflow.keras.datasets import mnist
# 載入資料
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 歸一化
x_train, x_test = x_train / 255.0, x_test / 255.0
4. 模型構建
構建一個簡單的神經網路模型:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
model = Sequential([
Flatten(input_shape=(28, 28)),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])
5. 編譯和訓練模型
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)
6. 評估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f'\nTest accuracy: {test_acc}')
程式碼測試用例
為了驗證程式碼的正確性,可以編寫一些簡單的測試用例:
def test_model_accuracy():
# 確保測試集的準確率不低於 90%
assert test_acc >= 0.90, f"Test accuracy too low: {test_acc}"
def test_model_output():
# 確保模型輸出的shape正確
predictions = model.predict(x_test)
assert predictions.shape == (10000, 10), f"Prediction shape incorrect: {predictions.shape}"
test_model_accuracy()
test_model_output()