CIFAR 10模型訓練與視覺化

2021-07-25 12:02:10 字數 1949 閱讀 2912

通過caffe深度學習框架在cifar10資料集訓練得到模型,觀察並分析模型的train loss 、test loss及accuracy曲線,並對得到的caffemodel進行測試。

資料集介紹:cifar-10是乙個使用非常廣泛的物體識別影象資料集,cifar-10資料中包含了60000張32×32的彩色影象,其中訓練集50000張,測試集10000張。共有10類物體,分別是airplane,automobile,bird,cat,deer,dog,frog,horse,ship,truck。

圖1 cifar-10資料部分示例

實驗環境:ubuntu14.04+caffe+gtx960+cuda7.5

網路模型

cd $caffe_root

./data/cifar10/get_cifar10.sh

./examples/cifar10/create_cifar10.sh

(2)模型

cifar-10是典型的卷積神經網路結構,包含相應的卷積層,池化層,修正線性單元以及最頂層帶有分類器的歸一化取樣層。在cifar10_quick_train_test.prototxt中可以看到相應的網路結構設定,下圖是網路結構的視覺化示意圖。

圖2 cifar-10 cnn model網路結構視覺化示意圖

(3)訓練模型

在.prototxt檔案裡面定義了網路的結構,輸入cifar10的lmdb檔案,通過softmax函式計算損失與準確率。在solver.prototxt檔案裡定義了訓練的各種引數。最後執行train_quick.sh檔案,即可獲得訓練結果。可以在terminal中看到訓練過程中loss引數以及迭代次數等資訊。最後訓練的結果儲存在cifar10_quick_iter_5000中。

圖3 模型訓練過程中顯示資訊

可以看到,在訓練過程中,每次迭代裡,lr表示的是learning rate,loss為training function。在測試部分,score 0表示accuracy,score 1便是testing loss function。

4.python介面模型訓練及視覺化顯示

下面使用caffe的python介面進行分類並視覺化顯示,繪製loss以及accuracy曲線。這裡採用的是jupyter notebook來進行曲線繪製。

在這裡使用cifar10_full_train_test.prototxt中的網路結構模型

迭代次數niter = 40000

圖4 訓練過程有關資料顯示

圖5 loss與accuracy曲線

5.使用模型分類新資料

訓練完成後我們得到模型:

cifar10_quick_iter_4000.caffemodel.h5

cifar10_quick_iter_4000.solverstate.h5

下面是測試使用的deploy模型結構圖

圖6 模型結構圖

下面是測試使用的,為一張馬的。

圖7 測試

下面是分類結果以及對應標籤的概率。

分類結果:

對應標籤的概率:

CIFAR10實現matlab視覺化資料集

load yourpath for i 1 size data,1 p data i,label labels i 資料是以一行的形式存在,每一行都是一張,作reshape轉換成32 32的形式 fig zeros 32,32,3 fig 1 reshape p 1 1024 32,32 fig 2...

一 cifar10分類訓練

本次學習使用caffe master檔案在downloads目錄下,使用caffe master。1.準備資料庫 cifar 10 預設在caffe master目錄下 終端執行如下命令獲取資料庫檔案 chenshaobo idea downloads caffe master cd data ci...

caffe中 cifar10案例(一)訓練模型

1.背景知識 cifar10資料訓練樣本50000張,測試樣本10000張,每張為32 32的彩色三通道,共分為10類。cd opt caffe master sudo sh data cifar10 get cifar10.sh 3.轉換資料格式為lmdb sh examples cifar10 ...