隨筆分類 - caffe

caffe的python接口學習(8):caffemodel中的參數及特徵的抽取

摘要: 如果用公式 y=f(wx+b) 來表示整個運算過程的話,那麼w和b就是我們需要訓練的東西,w稱爲權值,在cnn中也可以叫做卷積核(filter),b是偏置項。f是激活函數,有sigmoid、relu等。x就是輸入的數據。 數據訓練完成後,保存的caffemodel裏面,實際上就是各層的w和b值。 我閱讀全文

posted @ 2016-07-19 21:13 denny402 閱讀(25947) | 評論 (32) 編輯

caffe的python接口學習(7):繪製loss和accuracy曲線

摘要: 使用python接口來運行caffe程序,主要的原因是python非常容易可視化。所以不推薦大家在命令行下面運行python程序。如果非要在命令行下面運行,還不如直接用 c++算了。 推薦使用jupyter notebook,spyder等工具來運行python代碼,這樣才和它的可視化完美結合起來。閱讀全文

posted @ 2016-07-19 20:11 denny402 閱讀(17219) | 評論 (25) 編輯

caffe的python接口學習(6):用訓練好的模型(caffemodel)來分類新的圖片

摘要: 經過前面兩篇博文的學習,我們已經訓練好了一個caffemodel模型,並生成了一個deploy.prototxt文件,現在我們就利用這兩個文件來對一個新的圖片進行分類預測。 我們從mnist數據集的test集中隨便找一張圖片,用來進行實驗。 最後輸出 the class is : 5 分類正確。 如閱讀全文

posted @ 2016-07-19 19:05 denny402 閱讀(29169) | 評論 (59) 編輯

caffe的python接口學習(5):生成deploy文件

摘要: 如果要把訓練好的模型拿來測試新的圖片,那必須得要一個deploy.prototxt文件,這個文件實際上和test.prototxt文件差不多,只是頭尾不相同而也。deploy文件沒有第一層數據輸入層,也沒有最後的Accuracy層,但最後多了一個Softmax概率層。 這裏我們採用代碼的方式來自動生閱讀全文

posted @ 2016-07-19 18:27 denny402 閱讀(17873) | 評論 (16) 編輯

caffe的python接口學習(4):mnist實例---手寫數字識別

摘要: 深度學習的第一個實例一般都是mnist,只要這個例子完全弄懂了,其它的就是舉一反三的事了。由於篇幅原因,本文不具體介紹配置文件裏面每個參數的具體函義,如果想弄明白的,請參看我以前的博文: 數據層及參數 視覺層及參數 solver配置文件及參數 一、數據準備 官網提供的mnist數據並不是圖片,但我們閱讀全文

posted @ 2016-07-19 13:30 denny402 閱讀(29280) | 評論 (29) 編輯

caffe的python接口學習(3):訓練模型(training)

摘要: 如果不進行可視化,只想得到一個最終的訓練model, 那麼代碼非常簡單,如下 :閱讀全文

posted @ 2016-07-17 19:31 denny402 閱讀(16063) | 評論 (3) 編輯

caffe的python接口學習(2):生成solver文件

摘要: caffe在訓練的時候,需要一些參數設置,我們一般將這些參數設置在一個叫solver.prototxt的文件裏面,如下: 有一些參數需要計算的,也不是亂設置。 假設我們有50000個訓練樣本,batch_size爲64,即每批次處理64個樣本,那麼需要迭代50000/64=782次才處理完一次全部的閱讀全文

posted @ 2016-07-17 18:46 denny402 閱讀(15560) | 評論 (3) 編輯

caffe的python接口學習(1):生成配置文件

摘要: caffe是C++語言寫的,可能很多人不太熟悉,因此想用更簡單的腳本語言來實現。caffe提供matlab接口和python接口,這兩種語言就非常簡單,而且非常容易進行可視化,使得學習更加快速,理解更加深入。 半年前,我在學習CAFFE的時候,爲了加深理解,因此寫下了隨筆,有了一系列的caffe學習閱讀全文

posted @ 2016-07-17 17:41 denny402 閱讀(34510) | 評論 (9) 編輯

Caffe學習系列(23):如何將別人訓練好的model用到自己的數據上

摘要: caffe團隊用imagenet圖片進行訓練,迭代30多萬次,訓練出來一個model。這個model將圖片分爲1000類,應該是目前爲止最好的圖片分類model了。 假設我現在有一些自己的圖片想進行分類,但樣本量太小,可能只有幾百張,而一般深度學習都要求樣本量在1萬以上,因此訓練出來的model精度閱讀全文

posted @ 2016-01-17 17:57 denny402 閱讀(34036) | 評論 (67) 編輯

Caffe學習系列(22):caffe圖形化操作工具digits運行實例

摘要: 上接:Caffe學習系列(21):caffe圖形化操作工具digits的安裝與運行經過前面的操作,我們就把數據準備好了。一、訓練一個model右擊右邊Models模塊的” Images" 按鈕 ,選擇“classification"在打開頁面右下角可以看到,系統提供了一個caffe model,分別...閱讀全文

posted @ 2016-01-16 20:09 denny402 閱讀(12750) | 評論 (7) 編輯

Caffe學習系列(21):caffe圖形化操作工具digits的安裝與運行

摘要: 經過前面一系列的學習,我們基本上學會了如何在linux下運行caffe程序,也學會了如何用python接口進行數據及參數的可視化。如果還沒有學會的,請自行細細閱讀: caffe學習系列:http://www.cnblogs.com/denny402/tag/caffe/也許有人會覺得比較複雜。確實,...閱讀全文

posted @ 2016-01-16 19:22 denny402 閱讀(20027) | 評論 (15) 編輯

Caffe學習系列(20):用訓練好的caffemodel來進行分類

摘要: caffe程序自帶有一張小貓圖片,存放路徑爲caffe根目錄下的 examples/images/cat.jpg, 如果我們想用一個訓練好的caffemodel來對這張圖片進行分類,那該怎麼辦呢? 如果不用這張小貓圖片,換一張別的圖片,又該怎麼辦呢?如果學會了小貓圖片的分類,那麼換成其它圖片,程序實...閱讀全文

posted @ 2016-01-07 19:49 denny402 閱讀(61771) | 評論 (54) 編輯

Caffe學習系列(19): 繪製loss和accuracy曲線

摘要: 如同前幾篇的可視化,這裏採用的也是jupyter notebook來進行曲線繪製。In[1]:#加載必要的庫import numpy as npimport matplotlib.pyplot as plt%matplotlib inlineimport sys,os,caffe#設置當前目錄caf...閱讀全文

posted @ 2016-01-07 16:06 denny402 閱讀(14950) | 評論 (20) 編輯

Caffe學習系列(18): 繪製網絡模型

摘要: python/draw_net.py, 這個文件,就是用來繪製網絡模型的。也就是將網絡模型由prototxt變成一張圖片。在繪製之前,需要先安裝兩個庫1、安裝GraphViz# sudo apt-get install GraphViz注意,這裏用的是apt-get來安裝,而不是pip.2 、安裝p...閱讀全文

posted @ 2016-01-06 20:06 denny402 閱讀(18134) | 評論 (16) 編輯

Caffe學習系列(17):模型各層數據和參數可視化

摘要: cifar10的各層數據和參數可視化先用caffe對cifar10進行訓練,將訓練的結果模型進行保存,得到一個caffemodel,然後從測試圖片中選出一張進行測試,並進行可視化。In[1]:#加載必要的庫import numpy as npimport matplotlib.pyplot as p...閱讀全文

posted @ 2016-01-06 15:52 denny402 閱讀(16439) | 評論 (29) 編輯

Caffe學習系列(16):caffemodel可視化

摘要: 通過前面的學習,我們已經能夠正常訓練各種數據了。設置好solver.prototxt後,我們可以把訓練好的模型保存起來,如lenet_iter_10000.caffemodel。 訓練多少次就自動保存一下,這個是通過snapshot進行設置的,保存文件的路徑及文件名前綴是由snapshot_...閱讀全文

posted @ 2016-01-05 18:28 denny402 閱讀(22966) | 評論 (30) 編輯

Caffe學習系列(15):計算圖片數據的均值

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

posted @ 2016-01-05 14:56 denny402 閱讀(29110) | 評論 (22) 編輯

Caffe學習系列(14):初識數據可視化

摘要: 首先將caffe的根目錄作爲當前目錄,然後加載caffe程序自帶的小貓圖片,並顯示。圖片大小爲360x480,三通道In[1]:import numpy as npimport matplotlib.pyplot as plt%matplotlib inlineimport caffecaffe_r...閱讀全文

posted @ 2015-12-31 16:17 denny402 閱讀(22762) | 評論 (21) 編輯

Caffe學習系列(13):數據可視化環境(python接口)配置

摘要: caffe程序是由c++語言寫的,本身是不帶數據可視化功能的。只能藉助其它的庫或接口,如opencv, python或matlab。大部分人使用python接口來進行可視化,因爲python出了個比較強大的東西:ipython notebook, 現在的最新版本改名叫jupyter notebook...閱讀全文

posted @ 2015-12-30 12:08 denny402 閱讀(47497) | 評論 (46) 編輯

Caffe學習系列(12):訓練和測試自己的圖片

摘要: 學習caffe的目的,不是簡單的做幾個練習,最終還是要用到自己的實際項目或科研中。因此,本文介紹一下,從自己的原始圖片到lmdb數據,再到訓練和測試模型的整個流程。一、準備數據有條件的同學,可以去imagenet的官網http://www.image-net.org/download-images,...閱讀全文

posted @ 2015-12-28 17:47 denny402 閱讀(73481) | 評論 (258) 編輯

Caffe學習系列(11):圖像數據轉換成db(leveldb/lmdb)文件

摘要: 在深度學習的實際應用中,我們經常用到的原始數據是圖片文件,如jpg,jpeg,png,tif等格式的,而且有可能圖片的大小還不一致。而在caffe中經常使用的數據類型是lmdb或leveldb,因此就產生了這樣的一個問題:如何從原始圖片文件轉換成caffe中能夠運行的db(leveldb/lmdb)...閱讀全文

posted @ 2015-12-28 14:00 denny402 閱讀(62388) | 評論 (36) 編輯

Caffe學習系列(10):命令行解析

摘要: caffe的運行提供三種接口:c++接口(命令行)、python接口和matlab接口。本文先對命令行進行解析,後續會依次介紹其它兩個接口。caffe的c++主程序(caffe.cpp)放在根目錄下的tools文件夾內, 當然還有一些其它的功能文件,如:convert_imageset.cpp, t...閱讀全文

posted @ 2015-12-25 16:22 denny402 閱讀(52034) | 評論 (10) 編輯

Caffe學習系列(9):運行caffe自帶的兩個簡單例子

摘要: 爲了程序的簡潔,在caffe中是不帶練習數據的,因此需要自己去下載。但在caffe根目錄下的data文件夾裏,作者已經爲我們編寫好了下載數據的腳本文件,我們只需要聯網,運行這些腳本文件就行了。注意:在caffe中運行所有程序,都必須在根目錄下進行,否則會出錯1、mnist實例mnist是一個手寫數字...閱讀全文

posted @ 2015-12-25 11:57 denny402 閱讀(50149) | 評論 (9) 編輯

Caffe學習系列(8):solver優化方法

摘要: 上文提到,到目前爲止,caffe總共提供了六種優化方法:Stochastic Gradient Descent (type: "SGD"),AdaDelta (type: "AdaDelta"),Adaptive Gradient (type: "AdaGrad"),Adam (type: "Ada...閱讀全文

posted @ 2015-12-24 20:25 denny402 閱讀(34562) | 評論 (3) 編輯

Caffe學習系列(7):solver及其配置

摘要: solver算是caffe的核心的核心,它協調着整個模型的運作。caffe程序運行必帶的一個參數就是solver配置文件。運行代碼一般爲# caffe train --solver=*_slover.prototxt在Deep Learning中,往往loss function是非凸的,沒有解析解,...閱讀全文

posted @ 2015-12-24 19:26 denny402 閱讀(72450) | 評論 (9) 編輯

Caffe學習系列(6):Blob,Layer and Net以及對應配置文件的編寫

摘要: 深度網絡(net)是一個組合模型,它由許多相互連接的層(layers)組合而成。Caffe就是組建深度網絡的這樣一種工具,它按照一定的策略,一層一層的搭建出自己的模型。它將所有的信息數據定義爲blobs,從而進行便利的操作和通訊。Blob是caffe框架中一種標準的數組,一種統一的內存接口,它詳細描...閱讀全文

posted @ 2015-12-24 16:08 denny402 閱讀(22343) | 評論 (0) 編輯

Caffe學習系列(5):其它常用層及參數

摘要: 本文講解一些其它的常用層,包括:softmax_loss層,Inner Product層,accuracy層,reshape層和dropout層及其它們的參數配置。1、softmax-losssoftmax-loss層和softmax層計算大致是相同的。softmax是一個分類器,計算的是類別的概率...閱讀全文

posted @ 2015-12-24 13:24 denny402 閱讀(49316) | 評論 (3) 編輯

Caffe學習系列(4):激活層(Activiation Layers)及參數

摘要: 在激活層中,對輸入數據進行激活操作(實際上就是一種函數變換),是逐元素進行運算的。從bottom得到一個blob數據輸入,運算後,從top輸入一個blob數據。在運算過程中,沒有改變數據的大小,即輸入和輸出的數據大小是相等的。輸入:n*c*h*w輸出:n*c*h*w常用的激活函數有sigmoid, ...閱讀全文

posted @ 2015-12-24 11:27 denny402 閱讀(28488) | 評論 (7) 編輯

Caffe學習系列(3):視覺層(Vision Layers)及參數

摘要: 所有的層都具有的參數,如name, type, bottom, top和transform_param請參看我的前一篇文章:Caffe學習系列(2):數據層及參數本文只講解視覺層(Vision Layers)的參數,視覺層包括Convolution, Pooling,Local Response N...閱讀全文

posted @ 2015-12-23 20:10 denny402 閱讀(42877) | 評論 (15) 編輯

Caffe學習系列(2):數據層及參數

摘要: 要運行caffe,需要先創建一個模型(model),如比較常用的Lenet,Alex等, 而一個模型由多個屋(layer)構成,每一屋又由許多參數組成。所有的參數都定義在caffe.proto這個文件中。要熟練使用caffe,最重要的就是學會配置文件(prototxt)的編寫。層有很多種類型,比如D...閱讀全文

posted @ 2015-12-23 18:47 denny402 閱讀(73934) | 評論 (14) 編輯

Caffe學習系列(1):安裝配置ubuntu14.04+cuda7.5+caffe+cudnn

摘要: 一、版本 linux系統:Ubuntu 14.04 (64位) 顯卡:Nvidia K20c cuda: cuda_7.5.18_linux.run cudnn: cudnn-7.0-linux-x64-v4.0-rc 二、下載 Ubuntu 14.04下載地址:http://www.ubuntu.閱讀全文

posted @ 2015-12-22 17:07 denny402 閱讀(40504) | 評論 (27) 編輯

caffe windows學習:第一個測試程序

摘要: caffe windows編譯成功後,就可以開始進行測試了。如果還沒有編譯成功的,請參考:caffe windows 學習第一步:編譯和安裝(vs2012+win 64)一般第一個測試都是建議對手寫字體minist進行識別。這個測試放在根目錄下的 .\examples\mnist\ 文件夾內。1、下...閱讀全文

posted @ 2015-12-12 13:46 denny402 閱讀(24380) | 評論 (11) 編輯

caffe windows 學習第一步:編譯和安裝(vs2012+win 64)

摘要: 沒有GPU,沒有linux, 只好裝caffe的windows版本了。我的系統是win10(64位),vs 2012版本,其它什麼都沒有裝,因此會需要一切的依賴庫。其實操作系統只要是64位就行了,無所謂版本,win7,win8,win10都行.1、安裝vs2012。2、安裝 cude 6.5 可到此...閱讀全文

posted @ 2015-12-12 12:32 denny402 閱讀(21090) | 評論 (27) 編輯

Google protocol buffer在windows下的編譯

摘要: 在caffe框架中,使用的數據格式是google的 protocol buffer。對這個不瞭解,所以,想簡單學習一下。簡單來說,Protocol Buffer 是一種輕便高效的結構化數據存儲格式,可以用於結構化數據序列化和反序列化。一提到序列化就想到了JSON,不錯,兩者很相似。如果對JSON不熟...閱讀全文

posted @ 2015-11-23 20:07 denny402 閱讀(7246) | 評論 (0) 編輯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章