1. 程式人生 > >caffe中使用draw_net.py繪製卷積神經網路結構圖

caffe中使用draw_net.py繪製卷積神經網路結構圖

博主環境Ubuntu 14.04.4 LTS x64+caffe。

先看下成品。

上圖是caffe中的經典模型Lenet5網路結構,圖片展示的很清晰。

繪圖需要使用./cafferoot/python/draw_net.py指令碼。

呼叫命令

/username/caffe/python# python draw_net.py --rankdir TB ../examples/mnist/lenet.prototxt ../examples/mnist/lenet_structure.jpg

draw_net.py後接三個引數,–rankdir選項確定輸出圖片的擺放位置,TB為從上到下,RL為從右向左,LR為從左向右,預設為LR。../examples/mnist/lenet.prototxt為網路文字,../examples/mnist/lenet_structure.jpg為圖片存放地址。

輸入上述命令之後不出意外會報錯:

ImportError: No module named google.prototxt

解決方法:

安裝python-protobuf

sudo apt-get install Python-protobuf

裝完之後再次執行命令,提示第二個錯誤:

ImportError: No module named _caffe

解決方法:

編譯pycaffe並新增到環境中。

進入caffe所在目錄,執行以下命令

sudo make pycaffe

編譯完成之後執行以下命令新增系統環境變數
export PYTHONPATH=$PYTHONPATH:/cafferoot/python

進入python看看能否import caffe

提示第三個錯誤:

ImportError: No module named skimage.io

這個錯誤有點坑啊QAQ,參照別人方法用pip安裝scikit-image結果GG,提示錯誤:IndexError: list index out of range後來證明無論用pip還是apt-get安裝scikit-image都不行,最後參看Linux之家解決。

解決辦法:

輸入以下一堆命令去安裝python的各種庫=。=

sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython

安裝完成之後update一下,進入python去import caffe,成功!

接下來執行剛開始的那條命令......

接著報下一個錯誤:

ImportError: No module named pydot

解決辦法:

用pip安裝pydot,輸入以下命令:

sudo pip install pydot

再次執行剛開始的那條命令

繼續報錯......

錯誤:

Exception: "dot" not found in path.

解決辦法:

這個錯誤是由於缺少graphviz導致的,執行以下命令安裝

sudo apt-get install graphviz

完成之後再再次執行第一條命令,哎?提示Drawing net to ../examples/mnist/lenet_structure.jpg,難道?成功了?開啟目錄,果然lenet_structure.jpg結構圖片已經出來了。內心很激動......

由於參考了太多文章在這裡就不一一感謝,大家一起努力!