ubuntu14.04上實現faster rcnn_TF的demo程序及訓練過程


安裝環境:Ubuntu14.04、顯卡Tesla K40C+GeForce GT 705、tensorflow1.0.0、pycharm5.0

說明:原文見博客園,有問題原文下留言,不定期回復。本文作者疆,轉載請備注。

本文可解決的問題:

1.tensorflow1.0.0環境搭建

2.Ubuntu14.04安裝pycharm5.0

3.Ubuntu14.04上跑通faster rcnn_TF的demo程序

4.Ubuntu14.04上跑通faster rcnn_TF的訓練過程

安裝步驟如下:

一、tensorflow1.0.0環境搭建

1.安裝Ubuntu14.04及顯卡驅動、配置Cuda、cudnn環境請參照前一篇blog,網址為:http://www.cnblogs.com/deeplearning1314/p/8444352.html

2.首先確認ubuntu系統自帶python的版本號,因為python2與python3安裝tensorflow略有差異。命令行中敲入 python 顯示自帶python的版本為2.7.6。

3.安裝pip  命令行敲入sudo apt-get install python-pip python-dev

4.本來嘗試網上方法(如下圖)直接命令行聯網下載tensorflow。試了很久沒成功,提示網絡連接錯誤,需要翻牆、走代理下載。

5.不會走代理下載,於是想了一個辦法:直接在自己的筆記本上下載好tensorflow的whl文件(一篇blog提到faster rcnn_TF要求tensorflow版本在1.0.0以上)再拷貝到本機上用pip方式安裝。於是用自己筆記本在https://pypi.python.org下載后拷貝到工作站 /home“用戶名”(即主文件夾)目錄內。

如圖所示,進入該目錄下,准備以pip方式直接安裝下載好的.Whl文件。在該網址上下載到名為tensorflow_gpu-1.0.0-cp27-cp27mu-manylinux1_x86_64.whl。

pip安裝出現如下錯誤於是我猜想可能是文件名有問題就把文件名改為標准格式:tensorflow-1.0.0-cp27-none-linux_x86_64.whl

修改后pip安裝仍然報了與protobuf相關的錯,於是重敲命令重試了一遍(必要時可重啟機器),雖然報了幾個警告,但提示安裝tensorflow成功。

6.為了驗證tensorflow安裝是否成功,需要跑tensorflow的例子(如下圖為某本書的例子)

命令行內敲入Python 然后敲入import tensorflow as tf報錯如下:

我在網上查到了解決辦法,說與tensorflow環境變量有關。需要在每次import tensorflow as tf導入tensorflow之前敲兩句export語句(如下圖),這樣一來就很麻煩了,因為每一次import tensorflow時都要敲兩個export語句。這個問題可通過在Ubuntu系統通過添加環境變量解決這個問題,即將這兩句export添加到~/.bashrc和~/.bash_profile文件中,這樣便不用在每次導入tensorflow時敲export語句。(命令行用gedit工具打開這兩個文件都添加這兩個export語句)

這時便可以測試tensorflow的例子

第一次報錯創建會話(tensorflow執行運算需要先創建會話)失敗,不關閉窗口再敲一遍(sess=tf.Session())創建會話,上述例子就能得到計算結果。當時我對這個問題不太了解,不知道為什么第二次才能創建會話執行成功。后來想可能是因為tensorflow默認是用gpu執行的但是並未添加CUDA_VISIBLE_DEVICES=0從而使第一次執行時是以cpu執行的。到這里,tensorflow環境就搭建好了。

 

二、Ubuntu14.04安裝pycharm5.0

1.用自己筆記本在pycharm官網下載好pycharm5.0的tar.gz文件后拷貝至工作站/home”用戶名”(即主文件夾)目錄下。

2.解壓安裝pycharm: tar xvzf pycharm-community-2017.3.3.tar.gz

3.命令行方式打開pycharm,首先cd到pycharm的bin目錄下(如上圖),sudo sh pycharm.sh打開pycharm(如下圖)。第一次打開需要對pycharm進行配置。

 

三、Ubuntu14.04上跑通faster rcnn_TF的demo程序

 

主要參考:

(1)博客http://blog.csdn.net/seven_year_promise/article/details/78589656,基本上是按照這篇blog裝成功的,安裝過程會有一些較小的差異。

(2)faster rcnn_TF官網中README文件: https://github.com/CharlesShang/TFFRCNN

具體步驟以下面為准:

1.安裝Python庫

首先命令行敲入 sudo apt-get update 

然后依次安裝各個庫,敲入

sudo apt-get install cython python-opencv python-tk python-scipy python-yaml

sudo pip install easydict

sudo pip install matplotlib(這里按照上述blog安裝失敗,錯誤信息如下圖)

sudo python -m pip install Pillow

上面提到matplotlib庫未安裝成功,網上搜了很久無果,於是自己試了命令sudo apt-get install python-matplotlib安裝成功。

2.代碼下載(網址:https://github.com/CharlesShang/TFFRCNN)直接在命令行內敲入 git clone https://github.com/CharlesShang/TFFRCNN提示未安裝git,按照提示安裝git后依然報錯,於是重啟機器重新git clone安裝成功。安裝成功后在本機主文件夾(即/home “用戶名”)下可看到TFFRCNN文件夾。

3.在TFFRCNN根目錄下新建文件夾 model,放入下載好的訓練文件(.ckpt文件),這個文件也需要走代理下載(試了很多種方法如wget、google瀏覽器翻牆都沒下載到)。於是讓在國外的表哥幫忙下了,由於本人百度雲上傳文件次數受限,這里給不了個人百度雲下載鏈接。

4.打開 lib文件夾下的 make.sh,根據英文注釋提示和本機gcc編譯器版本來修改,同時注意修改與顯卡計算能力有關的參數。 本人機器gcc版本為4.8.4

 由於本人用於深度學習的顯卡(Tesla K40C)計算能力為3.5,make.sh中兩處改為-arch=sm_35。同時根據gcc版本取消注釋(uncomment)相關行。

5.執行make

命令行敲入cd ./lib  

再敲入 export PATH=$PATH:/usr/local/cuda-8.0/bin

最后敲入make 

6.運行demo

 將 faster rcnn文件夾下的 demo.py 拷貝到TFFRCNN根目錄下,修改demo(如圖顏色標記)    

第一處添加該句和導入模塊語句import os,第二處直接改成絕對路徑。執行如下命令:

cd ..  

python demo.py --model  “your model path”

若想在pycharm中跑demo,需對pycharm做如下配置:

(1)   打開demo程序,在pycharm5.0中file---setting---project interprete選擇當前程序及基礎解釋器均為Python2.7

(2)   在pycharm5.0中run---edit configurations---environment variables添加環境變量LD_LIBRARY_PATH=/usr/local/cuda/lib64 (如下圖)

(3)   在pycharm5.0中run---edit configurations---script parameters添加命令行參數

--model  /home/rcnn/TFFRCNN/model

完成以上配置后即可直接在pycharm中run本程序。

 

四、Ubuntu14.04上跑通faster rcnn_TF的訓練過程

 

主要參考:

1.https://blog.csdn.net/qq_39531954/article/details/78865452

2.http://www.cnblogs.com/danpe/p/7840087.html

3.faster rcnn_TF官網中README文件: https://github.com/CharlesShang/TFFRCNN

訓練VOC數據步驟如下:(翻譯講解上述英文步驟1---5)

1.我沒用上述wget方式直接聯網下載,貌似行不通必須走代理。所以可用自己筆記本到給出網址下載3個文件,它們是VOC2007數據集(包括圖片、標注信息等)及一些代碼文件。

2.在TFFRCNN文件data文件夾內新建VOCdevkit文件夾,下載好上述3個.tar文件后拷貝到data文件夾內,用上述3句命令分別解壓3個文件。

3.解壓后得到如上述3的文件結構。

4.按上述4中命令建立軟鏈接(如下圖軟鏈接圖標,這里的意思就是訪問VOCdevkit文件夾等同於訪問VOCdevkit2007文件夾),其實也可以不做這步而把3中VOCdevkit文件夾改名為VOCdevkit2007。

5.在data文件夾下新建pretrain_model文件夾,根據所給網址下載VGG16預訓練網絡模型(.npy文件),該文件也需要走代理、翻牆下載。

6.打開命令行,在命令內敲入sudo apt-get inatall python-skimage(該模塊與COCO數據集有關,由於程序中有import COCO語句,缺少模塊就會報錯)

 7.為使訓練完成后能直接生成.ckpt等3個文件(其中.ckpt可供demo直接測試)需對train.py文件做如下修改,同時需要添加from tensorflow.core.protobuf import saver pb2。如果此處不改,會生成4個文件,這樣在demo程序恢復模型變的較為復雜。

 

8.為方便調試,直接在pycharm下跑訓練程序,需做如下設置:

(1)打開train_net.py程序,在pycharm5.0中file---setting---project interprete選擇當前程序及基礎解釋器均為Python2.7

(2)在pycharm5.0中run---edit configurations---environment variables添加環境變量LD_LIBRARY_PATH=/usr/local/cuda/lib64

(3)在pycharm5.0中run---edit configurations---script parameters添加命令行參數

--gpu 0 --weights home/rcnn/TFFRCNN/data/pretrain_model/VGG_imagenet.npy --imdb voc_2007_trainval --iters 70000  --cfg home/rcnn/TFFRCNN/experiments/cfgs/faster_rcnn_end2end.yml --network VGGnet_train --set EXP_DIR exp_dir --restore 0

友情提示:千萬不要少了--restore 0

(4)在train_net.py程序中添加代碼:

import os

os.environ["CUDA_VISIBLE_DEVICES"]="0"

完成以上配置后即可直接在pycharm中run本程序。

 

本想在最后借個百度賬號上傳本工程及上述需走代理下載的文件,但是借來的賬號仍然提示上傳次數超過500次,估計百度網盤抽風了,前幾篇blog里的鏈接都失效了。如有需要請在文末評論聯系本人。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM