背景:
系统:ubuntu18.04
caffe:使用的sudo apt install caffe-cpu 安装的caffe
同时使用git获得caffe的源码包
git clone https://github.com/BVLC/caffe.git
错误: from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \ModuleNotFoundError: No module named ‘caffe._caffe’
查看网上教程可以用caffe源码包里面的 caffe/python/draw_net.py绘制网络结构图
但是网络上的环境和我主机上的环境不一致,直接使用会报错

找不到caffe._caffe模块
错误猜想:
因为未编译caffe源码包导致源码包中缺少部分文件
通过网上教程进行编译源码不通过

这里我认为因为我安装caffe是成功了的,所需要的文件ubuntu上也肯定是存在的,只是源码包中的代码未能链接到。
查找了一下未能链接的原因:

应该是源码包这里,存在caffe文件夹,所以在 draw_net.py执行过程中,代码优先链接到了这个文件夹,但这个文件夹里面又缺少 caffe._caffe模块
解决方法:
将该文件夹下的caffe隐藏掉,使得python代码自动到Ubuntu环境变量下去寻找caffe
这里的前提是Ubuntu中PATH中存在caffe,即输入caffe显示如下界面

隐藏caffe文件夹
创建临时文件夹diminish(随便取的名字),然后将caffe移动到diminish文件里面

结果
再次运行
python draw_net.py /home/hzq/caffe/mnist_my/lenet_train_test.prototxt ./img.png

可以看到这里是连接到 /usr/lib/python3/dist-packages/caffe是成功了的,只是python里面缺少了 pydot模块。查看源码

这里可以看到,代码是优先使用的 pydotplus模块,所以我采用安装的是 pip install pydotplus
继续报错: File “draw_net.py”, line 58, in main phase, args.display_lrm) TypeError: draw_net_to_file() takes from 2 to 4 positional arguments but 5 were given

查看 draw_net.py代码,修改

继续报错:File “/home/hzq/.local/lib/python3.6/site-packages/pydotplus/graphviz.py”, line 1960, in create ‘GraphViz’s executables not found’)
可以看到是系统中缺少 graphviz

使用 sudo apt-get install graphviz 安装

结果
再次执行 darw_net.py
并且执行 eog img.png 查看图片

效果如下:

原图如下:

再次使用 draw_net.py绘制

python draw_net.py --rankdir TB /home/hzq/caffe/myfile/examples/myfile_tostudy/myfile_tostudy_train_test.prototxt ./myimg.png
–rankdir TB 可以使图片从上到下的排列


本文详细记录了解决在Ubuntu18.04环境下使用Caffe绘制网络结构图时遇到的错误过程。作者通过隐藏caffe文件夹,确保Python正确链接到系统安装的Caffe,解决了模块未找到的问题,并安装了必要的依赖,如pydotplus和graphviz,最终成功绘制出了网络结构图。
4162

被折叠的 条评论
为什么被折叠?



