caffe學習:CIFAR-10
使用資料庫:CIFAR-10
60000張 32X32 彩色影象 10類,50000張訓練,10000張測試
具體操作實現:
(1)獲取資料庫
- #下面假定caffe的根目錄是 CAFFE_ROOT,在終端輸入命令下載資料集:
- cd $CAFFE_ROOT
- ./data/cifar10/get_cifar10.sh #該指令碼會下載二進位制的cifar,並解壓,會在/data/cifar10中出現很多batch檔案
- ./examples/cifar10/create_cifar10.sh #執行後將會在examples中出現數據集./cifar10_xxx_lmdb和資料集影象均值./mean.binaryprot
上邊是比較籠統的資料下載過程,主要分為兩步:下載與轉換。但是,對於一個新手來說,這點提示完全不知道該怎麼做,小編我就不明白,後來經過自己的不斷嘗試,終於搞定了。所以好多東西靠網上還是不靠譜的,還是要靠自己不斷嘗試。下面給出具體的步驟:
1)執行get_cifar10.sh 檔案。
小編這裡,該檔案所在位置為 Downloads/caffe-master/data/cifar10
用 cd 命令定位到該檔案所在處:
如:
- [email protected]:~$ cd Downloads
- [email protected]:~/Downloads$ cd caffe-master #定位到根目錄
然後再執行: ./get_cifar10.sh 命令,下載資料
- [email protected]:~/Downloads/caffe-master$ ./data/cifar10/get_cifar10.sh
- #該指令碼會下載二進位制的cifar,並解壓,會在/data/cifar10中出現很多batch檔案
2)執行create_cifar10.sh 檔案。
小編這裡,該檔案所在位置為 Downloads/caffe-master/examples/cifar10
由於create_cifar10.sh 檔案只在根目錄下執行,所以如果先將位置定位到create_cifar10 所在資料夾處,再執行 create_cifar10 是會報錯誤的。
報出如下錯誤:
./create_cifar10.sh: 13: ./create_cifar10.sh: ./build/examples/cifar10/convert_cifar_data.bin: not found
所以用如下語句執行 create_cifar10.sh 檔案。 執行後將會在examples中出現數據集./cifar10_xxx_lmdb和資料集影象均值./mean.binaryproto
- [email protected]:~$ cd Downloads
- [email protected]:~/Downloads$ cd caffe-master
- [email protected]:~/Downloads/caffe-master$ ./examples/cifar10/create_cifar10.sh
create_cifar10.sh 所做的工作就是將圖片庫轉成leveldb格式,並計算均值二進位制檔案
執行之後,將會在examples中出現數據庫檔案./cifar10-leveldb和資料庫影象均值二進位制檔案./mean.binaryproto
- (2)開始訓練 #$CAFFE_ROOT為 caffe 的根目錄
- cd $CAFFE_ROOT
- ./examples/cifar10/train_quick.sh
具體操作如下:
- [email protected]:~$ cd Downloads
- [email protected]:~/Downloads$ cd caffe-master
- [email protected]:~/Downloads/caffe-master$ ./examples/cifar10/train_quick.sh# ./train_quick.sh 命令,訓練資料
訓練完成後我們會得到:
cifar10_quick_iter_4000.caffemodel.h5
cifar10_quick_iter_4000.solverstate.h5
此時,我們就訓練得到了模型,用於後面的分類
執行中出現的問題:
在執行訓練語句後,出現提示問題:
- [email protected]:~/Downloads/caffe-master$ ./examples/cifar10/train_quick.sh
- I0802 17:42:26.469802 5520 caffe.cpp:217] Using GPUs 0
- F0802 17:42:26.470361 5520 common.cpp:66] Cannot use GPU in CPU-only Caffe: check mode.
在配置Makefile.config已經將其變為CPU-only 了,可還是出現這樣的問題,這是由於在 cifar10_quick_solver.prototxt中未將其解決模式改為CPU。其他的找到相應的solver.prototxt進行更改。
(3)使用訓練的模型來分類新資料
先直接用一下別人的模型分類試一下:(預設用的ImageNet的模型)
- python python/classify.py examples/images/cat.jpg foo
下面我們來指定自己的模型進行分類:
- python python/classify.py --model_def examples/cifar10/cifar10_quick.prototxt --pretrained_model examples/cifar10/cifar10_quick_iter_4000.caffemodel.h5 --center_only examples/images/cat.jpg foo
上面這句話的意思是,使用cifar10_quick.prototxt網路 + cifar10_quick_iter_4000.caffemodel.h5模型,對examples/images/cat.jpg圖片進行分類。
預設的classify指令碼不會直接輸出結果,而是會把結果輸入到foo檔案裡,不太直觀,這裡我在網上找了一個修改版,添加了一些引數,可以輸出概率最高的分類。
這個指令碼添加了兩個引數,可以指定labels_file,然後可以直接把分類結果輸出出來:
python python/classify.py --print_results --model_def examples/cifar10/cifar10_quick.prototxt --pretrained_model examples/cifar10/cifar10_quick_iter_4000.caffemodel.h5 --labels_file data/cifar10/cifar10_words.txt --center_only examples/images/cat.jpg foo
輸出結果:
Loading file: examples/images/cat.jpg
Classifying 1 inputs.
predict 3 inputs.
Done in 0.02 s.
Predictions : [[ 0.03903743 0.00722749 0.04582177 0.44352672 0.01203315 0.11832549
0.02335102 0.25013766 0.03541689 0.02512246]]
python/classify.py:176: FutureWarning: sort(columns=....) is deprecated, use sort_values(by=.....)
labels = labels_df.sort('synset_id')['name'].values
[('cat', '0.44353'), ('horse', '0.25014'), ('dog', '0.11833'), ('bird', '0.04582'), ('airplane', '0.03904')]
上面標明瞭各個分類的順序和置信度
Saving results into foo
最後,總結一下訓練一個網路用到的相關檔案:
cifar10_quick_solver.prototxt:方案配置,用於配置迭代次數等資訊,訓練時直接呼叫caffe train指定這個檔案,就會開始訓練
cifar10_quick_train_test.prototxt:訓練網路配置,用來設定訓練用的網路,這個檔案的名字會在solver.prototxt裡指定
cifar10_quick_iter_4000.caffemodel.h5:訓練出來的模型,後面就用這個模型來做分類
cifar10_quick_iter_4000.solverstate.h5:也是訓練出來的,應該是用來中斷後繼續訓練用的檔案
cifar10_quick.prototxt:分類用的網路
模型介紹
模型描述在examples/cifar10/cifar10_quick_solver.prototxt 和 examples/cifar10/cifar10_quick_train_test.prototxt 中。
模型訓練是 執行 train_quick.sh
相關推薦
caffe學習:CIFAR-10
使用資料庫:CIFAR-10 60000張 32X32 彩色影象 10類,50000張訓練,10000張測試 具體操作實現: (1)獲取資料庫 #下面假定caffe的根目錄是 CAFFE_ROOT,在終端輸入命令下載資料集: cd $CAFFE_R
TensorFlow學習筆記(九):CIFAR-10訓練例子報錯解決
以下報錯主要是由於TensorFlow升級1.0後與以前程式碼不相容所致。 1.AttributeError: 'module' object has noattribute 'random_crop' 解決方案: 將distorted_image= tf.ima
TensorFlow學習筆記(十): CIFAR-10
1. CIFAR-10 Cifar-10 是由 Hinton 的兩個大弟子 Alex Krizhevsky、Ilya Sutskever 收集的一個用於普適物體識別的資料集。Cifar 是加拿大政府牽頭投資的一個先進科學專案研究所。Hinton、Bengio
【轉載】Caffe學習:運行caffe自帶的兩個簡單例子
0.00 練習 siam 其它 sudo 單例 復制 腳本 policy 原文:http://www.cnblogs.com/denny402/p/5075490.html 為了程序的簡潔,在caffe中是不帶練習數據的,因此需要自己去下載。但在caffe根目錄下的data
Dataset:CIFAR-10簡介、下載、使用方法之詳細攻略
CIFAR-10簡介 CIFAR-10是一個更接近普適物體的彩色影象資料集。CIFAR-10 是由Hinton 的學生Alex Krizhevsky 和Ilya Sutskever 整理的一個用於識別普適物體的小型資料集。白一共包含10 個類別的RG
基於Keras:CIFAR-10-分類
一、概述 CIFAR-10是一個比較經典的資料集,主要用於影象分類; 該資料集共有60000張彩色影象,這些影象是32*32,分為10個類,每類6000張圖。這裡面有50000張用於訓練,構成了5個訓練批,每一批10000張圖;另外10000用於測試,單獨構成
caffe學習:Faster-RCNN除錯
參考官方的安裝教程的同時,注意一些細節,由於我的伺服器上之前跑openpose,因為Anaconda包含與Caffe不相容的Protobuf版本,所以一直不敢裝anaconda。但是跑Faster-RCNN的時候又發現自己安裝的python環境,那些第三方庫又老是出現不相
Caffe學習:4. 使用訓練好的caffemodel(python)
在嘗試過 mnist 資料集進行測試後,想要對任意一張圖片進行識別測試,所以將目光瞄準了GoogleNet。在Caffe安裝好後就會有GoogleNet的example,在model種就可以找到。 ————————————————————————————————————
Caffe學習:使用pycaffe讀取caffemodel引數
#!/usr/bin/env python # 引入“咖啡” import caffe import numpy as np # 使輸出的引數完全顯示 # 若沒有這一句,因為引數太多,中間會以省略號“……”的形式代替 np.set_printoptions(thres
Tersorflow深度學習入門—— CIFAR-10 訓練示例報錯及解決方案
Tersorflow CIFAR-10 訓練示例報錯及解決方案 1.AttributeError: 'module' object has noattribute 'random_crop' 解
Caffe學習:pycaffe利用caffemodel進行分類
匯入相關庫 import caffe 配置 # caffemodel檔案 MODEL_FILE = 'model/_iter_10000.caffemodel' # deplo
Caffe學習:使用pycaffe進行網路訓練與測試
使用pycaffe進行網路訓練與測試: 編寫solver檔案: train_net: "mnist/lenet_auto_train.prototxt" test_net: "mnist/len
【10】Caffe學習系列:命令列解析
caffe的執行提供三種介面:c++介面(命令列)、python介面和matlab介面。本文先對命令列進行解析,後續會依次介紹其它兩個介面。其實大部分情況下我們會使用python介面進行呼叫,當然caffe提供了C++命令列介面,還是有必要了解一下。命令列引數有個優點是支援多GPU執行。 caf
機器學習學習筆記:用MiniVGGNet處理Cifar-10資料集
0. 引言 VGGNet,由Simonyan和Zisserman在2014年提出,論文名字是《Very Deep Learning Convolutional Neural Networks for Large-Scale Image Recognition》。他們做出的貢
Tensorflow深度學習之二十一:LeNet的實現(CIFAR-10資料集)
一、LeNet的簡介 LeNet是一個用來識別手寫數字的最經典的卷積神經網路,是Yann LeCun在1998年設計並提出的。Lenet的網路結構規模較小,但包含了卷積層、池化層、全連線層,他們都構成了現代CNN的基本元件。 LeNet包含輸入層在內共有
Tensorflow深度學習之二十二:AlexNet的實現(CIFAR-10資料集)
二、工程結構 由於我自己訓練的機器記憶體視訊記憶體不足,不能一次性讀取10000張圖片,因此,在這之前我按照圖片的類別,將每一張圖片都提取了出來,儲存成了jpg格式。與此同時,在儲存圖片的過程中,儲存了一個python的dict結構,鍵為每一張圖片的相對地
Caffe學習筆記10:影象資料生成caffe需要的(laveldb和lmdb)資料檔案
在深度學習的實際應用中,我們經常用到的原始資料是圖片檔案,如jpg,jpeg,png,tif等格式的,而且有可能圖片的大小還不一致。而在caffe中經常使用的資料型別是lmdb或lev
Caffe深度學習進階之Cifar-10分類任務(上)
前言 Cifar-10資料集是深度學習領域一個常見的資料集。Cifar-10由60000張32*32的RGB彩色圖片構成,一共包含有飛機、汽車、鳥、毛、鹿、狗、青蛙、馬、船、卡車這10個類別。50000張訓練,10000張測試。常被用來作為分類任務來評價深度學
SpringBoot學習筆記(10):使用MongoDB來訪問數據
and exclude 包含 思維導圖 .org args 表示 告訴 http SpringBoot學習筆記(10):使用MongoDB來訪問數據 快速開始 本指南將引導您完成使用Spring Data MongoDB構建應用程序的過程,該應用程序將數據存儲在Mong
【14】Caffe學習系列:計算圖片資料的均值
圖片減去均值後,再進行訓練和測試,會提高速度和精度。因此,一般在各種模型中都會有這個操作。 那麼這個均值怎麼來的呢,實際上就是計算所有訓練樣本的平均值,計算出來後,儲存為一個均值檔案,在以後的測試中,就可以直接使用這個均值來相減,而不需要對測試圖片重新計算。 一、二進位制格式的均值計算