1. 程式人生 > >caffe學習:CIFAR-10

caffe學習:CIFAR-10

使用資料庫:CIFAR-10

60000張 32X32 彩色影象 10類,50000張訓練,10000張測試

Caffe 深度學習框架上手教程

具體操作實現:

(1)獲取資料庫

  1. #下面假定caffe的根目錄是 CAFFE_ROOT,在終端輸入命令下載資料集:  
  2. cd  $CAFFE_ROOT  
  3. ./data/cifar10/get_cifar10.sh  #該指令碼會下載二進位制的cifar,並解壓,會在/data/cifar10中出現很多batch檔案  
  4. ./examples/cifar10/create_cifar10.sh #執行後將會在examples中出現數據集./cifar10_xxx_lmdb和資料集影象均值./mean.binaryprot  

上邊是比較籠統的資料下載過程,主要分為兩步:下載與轉換。但是,對於一個新手來說,這點提示完全不知道該怎麼做,小編我就不明白,後來經過自己的不斷嘗試,終於搞定了。所以好多東西靠網上還是不靠譜的,還是要靠自己不斷嘗試。下面給出具體的步驟:

1)執行get_cifar10.sh 檔案。

小編這裡,該檔案所在位置為  Downloads/caffe-master/data/cifar10

用 cd 命令定位到該檔案所在處:

如:

  1. [email protected]:~$ cd Downloads  
  2. [email protected]:~/Downloads$ cd caffe-master  #定位到根目錄
      

然後再執行: ./get_cifar10.sh  命令,下載資料

  1. [email protected]:~/Downloads/caffe-master$ ./data/cifar10/get_cifar10.sh  
  1. #該指令碼會下載二進位制的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

  1. [email protected]:~$ cd Downloads  
  2. [email protected]:~/Downloads$ cd caffe-master  
  3. [email protected]:~/Downloads/caffe-master$ ./examples/cifar10/create_cifar10.sh  

create_cifar10.sh  所做的工作就是將圖片庫轉成leveldb格式,並計算均值二進位制檔案

執行之後,將會在examples中出現數據庫檔案./cifar10-leveldb和資料庫影象均值二進位制檔案./mean.binaryproto

  1. (2)開始訓練 #$CAFFE_ROOT為 caffe 的根目錄  
  2. cd $CAFFE_ROOT  
  3. ./examples/cifar10/train_quick.sh  

具體操作如下:

  1. [email protected]:~$ cd Downloads  
  2. [email protected]:~/Downloads$ cd caffe-master  
  3. [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

  此時,我們就訓練得到了模型,用於後面的分類

執行中出現的問題:

在執行訓練語句後,出現提示問題:

  1. [email protected]:~/Downloads/caffe-master$ ./examples/cifar10/train_quick.sh  
  2. I0802 17:42:26.469802  5520 caffe.cpp:217] Using GPUs 0  
  3. 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的模型)

  1. python python/classify.py examples/images/cat.jpg foo  

下面我們來指定自己的模型進行分類:

  1. 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

DatasetCIFAR-10簡介、下載、使用方法之詳細攻略

CIFAR-10簡介           CIFAR-10是一個更接近普適物體的彩色影象資料集。CIFAR-10 是由Hinton 的學生Alex Krizhevsky 和Ilya Sutskever 整理的一個用於識別普適物體的小型資料集。白一共包含10 個類別的RG

基於KerasCIFAR-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

10Caffe學習系列命令列解析

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學習系列計算圖片資料的均值

圖片減去均值後,再進行訓練和測試,會提高速度和精度。因此,一般在各種模型中都會有這個操作。 那麼這個均值怎麼來的呢,實際上就是計算所有訓練樣本的平均值,計算出來後,儲存為一個均值檔案,在以後的測試中,就可以直接使用這個均值來相減,而不需要對測試圖片重新計算。 一、二進位制格式的均值計算