caffe的安裝配置,以及fcn的使用在我前邊的文章當中都已經提及到了,這邊不會再細講。在下邊的內容當中,我們來看看如何使用別人提供的數據集來訓練自己的模型!在這篇文章之後,我計劃還要再寫如何fine-tune和制作自己的數據集,以及用自己的數據集fine-tune。
Caffe 深度學習入門教程 http://www.linuxidc.com/Linux/2016-11/136774.htm
Ubuntu 16.04 安裝配置Caffe 圖文詳解 http://www.linuxidc.com/Linux/2016-12/138870.htm
Ubuntu 16.04下Matlab2014a+Anaconda2+OpenCV3.1+Caffe安裝 http://www.linuxidc.com/Linux/2016-07/132860.htm
Ubuntu 16.04系統下CUDA7.5配置Caffe教程 http://www.linuxidc.com/Linux/2016-07/132859.htm
Caffe在Ubuntu 14.04 64bit 下的安裝 http://www.linuxidc.com/Linux/2015-07/120449.htm
深度學習框架Caffe在Ubuntu下編譯安裝 http://www.linuxidc.com/Linux/2016-07/133225.htm
Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置說明 http://www.linuxidc.com/Linux/2015-04/116444.htm
Ubuntu 16.04上安裝Caffe http://www.linuxidc.com/Linux/2016-08/134585.htm
Caffe配置簡明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 ) http://www.linuxidc.com/Linux/2016-09/135016.htm
Ubuntu 16.04上安裝Caffe(CPU only) http://www.linuxidc.com/Linux/2016-09/135034.htm
Ubuntu 14.04搭建Caffe(僅CPU) http://www.linuxidc.com/Linux/2017-01/139236.htm
下載數據集: http://pan.baidu.com/s/1dFxaAtj ,並解壓至/fcn.berkeleyvision.org/data/
下,並將文件夾名重命名為sift-flow
。之後,將數據全部resize到500*500。
這裡一定要注意,/fcn.berkeleyvision.org/data/下本來就有一個文件夾叫sift-flow,千萬不要覆蓋。同時,這些原本就存在的文件夾裡的東西還要全部復制到新解壓的sift-flow文件夾下邊。你可以先把原本的sift-slow重新命名為sitf-flow_1,然後再解壓復制!
下載VGG-16的預訓練模型放至/fcn.berkeleyvision.org/ilsvrc-nets/
目錄下,並重命名為vgg16-fcn.caffemodel
。
百度網盤下載:
鏈接: http://pan.baidu.com/s/1c2d0mBY 密碼: pjgi
到Linux公社1號FTP服務器下載
------------------------------------------分割線------------------------------------------
FTP地址:ftp://ftp1.linuxidc.com
用戶名:ftp1.linuxidc.com
密碼:www.linuxidc.com
在 20177年LinuxIDC.com\1月\FCN網絡的訓練——以SIFT-Flow 數據集為例\
下載方法見 http://www.linuxidc.com/Linux/2013-10/91140.htm
------------------------------------------分割線------------------------------------------
進入siftflow-fcn32s
文件夾下,將test.prototxt
和trainval.prototxt
中的fc6
和fc7
分別替換為其他名稱,例如:fc6_new
和fc7_new
。
原因是我們下載的預訓練模型VGG-16原模型中包含有fc6和fc7這兩個全連接層,而在prototxt中,使我們新添加的卷積層,在模型加載時,如果名稱一樣,而結構數據不同,便會報錯。如果改名之後,原來的fc6/7則會被忽略,而使用我們新的層。
由於FCN代碼和caffe代碼是獨立的文件夾,因此,須將caffe的Python接口加入到path中去。這裡有兩種方案,一種是在所有代碼中出現import caffe
之前,加入:
1 import sys 2 sys.path.append('caffe根目錄/python')
另一種一勞永逸的方法是:在終端或者bashrc中將接口加入到PYTHONPATH
中:
export PYTHONPATH=caffe根目錄/python:$PYTHONPATH
1 $ cd cd siftflow-fcn32s/ 2 $ python solve.py
這裡會遇見幾個問題:
(1)No module named surgery,score
原因是下載的fcn源碼解壓根目錄下有兩個文件:surgery.py和score.py。這兩個文件是下載下來就自帶的,並不是caffe自帶的,也不是前邊我安裝caffe時需要配置的。由於我是在/fcn根目錄/siftflow-fcn32s/這個文件夾下執行的,會導致找不到這兩個文件。所以,解決方案就是:
cp surgery.py score.py ./siftflow-fcn32s/
將surgery.py和score.py拷貝到siftflow-fcn32s下。
(2)ImportError: No module named setproctitle
解決方案是:安裝setproctitle! sudo pip install setproctitle
(3)IndexError: list index out of range
解決方案:修改GPU編號為0號GPU
(4)No modulw named siftflow_layers
解決方案:瘋了,干錯把根目錄下邊的所有.py文件全拷貝到siftflow-fcn32s裡邊去吧。
好了,現在可以開始訓練了!看看訓練過程:
由於損失loss很大,我也不知道什麼時候能收斂,所以先放一放,等跑出結果來我再過來更新!