z中描述了CNN的基本概念,本文在一個經典的數據集CIFAR-10上實現一個卷積神經網絡。
CIFAR-10數據集
CIFAR-10數據集由60000張32x32的彩色圖像組成,其中訓練集50000張,測試集10000張。共有以下十個分類:飛機, 汽車, 鳥, 貓, 鹿, 狗, 青蛙, 馬, 船以及卡車,每個分類6000張圖像。
TensorFlow環境搭建與Model訓練
Ubuntu環境下的TensorFlow安裝見 。
我們使用TensorFlow Models庫,以便使用CIFAR-10數據的類。
git clone https://github.com/tensorflow/models.git
cd modes/tutorials/image/cifar10
目錄組織:
執行腳本cifar10_train.py來啟動訓練過程
python cifar10_train.py
注意: 當第一次在CIFAR-10教程上啟動任何任務時,會自動下載CIFAR-10數據集,該數據集大約有160M大小,因此第一次運行時泡杯咖啡小棲一會吧。
如果在GPU上經過幾個小時、10W批次的訓練,該模型可以達到最高86%的精度。不過我只有一個安裝Ubuntu 14.04環境的虛擬機,所有都訓練下來估計得十幾個小時,所以把訓練的max_steps設置為3000。下圖是訓練過程的輸出。
腳本會在每10步訓練過程後打印出總損失值,以及最後一批數據的處理速度,打印出來的損失值是最近一批數據的損失值的均值。損失值是交叉熵和權重衰減項的和。
訓練的結果可以達到73.7%左右的準確率。
看圖說話效果
聲音:
關於發音模塊如何實現,見下一篇文章。另外在訓練中遇到很多問題,訓練的效果整體也不太好,後續持續研究。
閱讀更多 半杯茶的小酒杯 的文章