用TensorFlow看圖說話學英語(1)-CNN圖像識別

z中描述了CNN的基本概念,本文在一個經典的數據集CIFAR-10上實現一個卷積神經網絡。

CIFAR-10數據集

CIFAR-10數據集由60000張32x32的彩色圖像組成,其中訓練集50000張,測試集10000張。共有以下十個分類:飛機, 汽車, 鳥, 貓, 鹿, 狗, 青蛙, 馬, 船以及卡車,每個分類6000張圖像。

用TensorFlow看圖說話學英語(1)-CNN圖像識別

TensorFlow環境搭建與Model訓練

Ubuntu環境下的TensorFlow安裝見 。

我們使用TensorFlow Models庫,以便使用CIFAR-10數據的類。

git clone https://github.com/tensorflow/models.git

cd modes/tutorials/image/cifar10

目錄組織:

用TensorFlow看圖說話學英語(1)-CNN圖像識別

執行腳本cifar10_train.py來啟動訓練過程

python cifar10_train.py

注意: 當第一次在CIFAR-10教程上啟動任何任務時,會自動下載CIFAR-10數據集,該數據集大約有160M大小,因此第一次運行時泡杯咖啡小棲一會吧。

如果在GPU上經過幾個小時、10W批次的訓練,該模型可以達到最高86%的精度。不過我只有一個安裝Ubuntu 14.04環境的虛擬機,所有都訓練下來估計得十幾個小時,所以把訓練的max_steps設置為3000。下圖是訓練過程的輸出。

用TensorFlow看圖說話學英語(1)-CNN圖像識別

腳本會在每10步訓練過程後打印出總損失值,以及最後一批數據的處理速度,打印出來的損失值是最近一批數據的損失值的均值。損失值是交叉熵和權重衰減項的和。

訓練的結果可以達到73.7%左右的準確率。

看圖說話效果

用TensorFlow看圖說話學英語(1)-CNN圖像識別

聲音:

關於發音模塊如何實現,見下一篇文章。另外在訓練中遇到很多問題,訓練的效果整體也不太好,後續持續研究。


分享到:


相關文章: