一,draw_net.py文件,是caffe自带的python脚本文件,主要为了绘制出caffe算法训练出的模型。以下是整个绘制过程,以及绘制过程中遇到的问题和解决的办法:
1,当首次执行自己创建的脚本文件时遇到protobuf包的缺失,
脚本文件drawnet.sh贴在下方:
#!/usr/bin/env sh
python draw_net.py face_deploy.prototxt net.png --rankdir=TB
注:这里使用python2.7,所有绘制过程中所用到的文件以及绘制出的图像都设置保存在了同一级根目录下,如果你的文件没有在同一级目录下,也可以指定每一个文件的绝对路径。draw_net.py是要执行的python文件,face_deploy.prototxt是将要绘制出的模型定义文件(这里也可以是你的模型文件,它都可以绘制出),net.png是绘制出的图像, “.png"是绘制出的图像格式,这里如果设置为“.bmp”格式的话,会报AssertionError的错,可以是“.jpg”。rankdir=TB是设置绘制的纵横,方向是垂直还是水平,可以是“LR”(水平)和“TB”(垂直)。
当执行以下命令时:
./drawnet.py
结果出现了以下bug,这是缺少protobuf的缘故
解决办法:
sudo pip2 install protobuf
安装完成后需要继续安装绘制图像的依赖包:
sudo pip2 install pydot
这时会出现安装错误,这是因为没有指定好pydot的版本:
sudo pip2 install pydot==1.0
利用这条命令可以借鉴所列出的pydot的版本号,选一个你所需要的版本进行安装:
本人选的版本是1.2.4
sudo pip2 install pydot==1.2.4
安装完成后,继续安装graphviz包:
sudo apt-get install graphviz
要用apt-get下载,否则可能会找不到包的路径。
安装完成后,需要执行以下命令,来更新刚安装的包:
sudo apt-get update
更新完成后,执行下绘图脚本:
./drawnet.sh
如果运行后出现缺少sk-image包,如以下错误:
这时可以利用pip命令检查一下python2.7下载包的清单:
pip2 list
根据清单可以看出,明显缺少sk-image包,这时需要下载:
sudo pip2 install scikit-image
同时缺少opencv包也一并安装:
sudo pip2 install opencv-python
安装完成后再执行一下绘图脚本程序,如果出现以下错误:
说明你当下安装的protobuf的版本过高,这时需要对它降级,卸载后重新下载:
sudo pip2 uninstall protobuf
然后可以在运用pip命令查看protobuf的所有推荐版本:
sudo pip2 install protobuf==1.0
本人使用2.6.0版本号:
sudo pip2 install protobuf==2.6.0
安装完成后就可以执行绘图脚本了:
执行结果如下:
结语:下篇介绍如何在新版caffe上增加并编译分类效果最好的center_loss层