??引言
👍👍點關注編程夢想家(大學生版)-CSDN博客不迷路??
這個示例項目使用了CIFAR-10數據集,這是一個包含10個類別的60,000張32x32彩色圖像的數據集,類別包括飛機、汽車、鳥類等。模型是一個簡單的卷積神經網絡(CNN),它使用了幾個卷積層和全連接層來進行圖像分類。
代碼的主要步驟如下:
- 數據準備:加載CIFAR-10數據集,并對其進行歸一化處理。
- 模型設計:使用
Sequential
模型創建一個卷積神經網絡。- 編譯模型:設置優化器、損失函數和評估指標。
- 訓練模型:使用訓練數據訓練模型,并在測試數據上進行驗證。
- 評估模型:在測試集上評估模型的性能。
- 可視化訓練過程:繪制訓練和驗證的準確率,以可視化模型的訓練過程。
?
🎃 示例代碼:
數據集下載可能有點久哦,請不要著急!!,可以聽一首? 暮色回響 (Live版) (163.com)😘😘
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.keras import layers, models# 1. 數據準備
# 加載CIFAR10數據集
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data()# 歸一化像素值
x_train, x_test = x_train / 255.0, x_test / 255.0# 2. 模型設計
# 創建Sequential模型
model = models.Sequential([layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),layers.MaxPooling2D((2, 2)),layers.Conv2D(64, (3, 3), activation='relu'),layers.MaxPooling2D((2, 2)),layers.Conv2D(64, (3, 3), activation='relu'),layers.Flatten(),layers.Dense(64, activation='relu'),layers.Dense(10)
])# 3. 編譯模型
model.compile(optimizer='adam',loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),metrics=['accuracy'])# 4. 訓練模型
history = model.fit(x_train, y_train, epochs=10,validation_data=(x_test, y_test))# 5. 評估模型
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print(f'Test accuracy: {test_acc}')# 6. 可視化訓練過程
plt.plot(history.history['accuracy'], label='accuracy')
plt.plot(history.history['val_accuracy'], label = 'val_accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.ylim([0, 1])
plt.legend(loc='lower right')test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print(f'Test Loss: {test_loss}, Test Accuracy: {test_acc}')# 顯示圖表
plt.show()
結語
請注意,這是一個非常基礎的示例,實際的深度學習項目可能需要更復雜的數據增強、正則化、超參數調整和模型架構設計。此外,模型的評估和可視化部分可以根據項目需求進行調整和擴展