在caffe中调用python层的问题和解决方案
之前很早以前在caffe中用过python写的loss layer,很久不用后在新的服务器上使用就各种“No module named WeightedEuclideanLossLayer2”(注:WeightedEuclideanLossLayer2.py是我的loss层 )这个问题的解决分成两大块。
1 就WeightedEuclideanLossLayer2.py文件而言
因为说“No module named WeightedEuclideanLossLayer2”所以我就一直在py文件上下功夫
Step1 make clean; make all -j8; make matcaffe -j8; make pycaffe -j8 这些个命令重头到尾执行一遍。(我以为这样就可以实现在python中import caffe了。然而并不是.....所以给后面埋了一个雷)
Step2 将WeightedEuclideanLossLayer2.py文件放到caffe中python的目录下(因为不确定还要不要放到python的子文件夹caffe/python/caffe中,因此又拷贝了一份)。同时要讲文件中sys.path.append('c:/xxxx/b.py') 对应的路径改了。
Step3 run train,然后还是报错“No module named WeightedEuclideanLossLayer2”。晕,心想着是不是还有哪里忘记拷贝文件了,就一通搜。网上说在python的系统目录下(、usr/local/lib/python2.7)要有调用的文件。可是因为权限问题,没办法复制文件过去,我查了jiao的服务器,系统目录下也没有这个文件。我对比两个服务器的caffe/python目录,发现我的服务器里没有WeightedEuclideanLossLayer2.pyc这个文件,心想着是不是这样才导致找不到module。结果手动从jiao的服务器里拷贝该文件进来也还是不行。最后像网上说的在python下import WeightedEuclideanLossLayer2看能不能找到。
结果还是不行。后来我试着import python文件夹中自带的一些py文件看行不行结果就行了。(ps:图中的pyc文件是从jiao的服务器里直接拷贝过来的,不是新生成的。)
这样就好了,会发现WeightedEuclideanLossLayer2.pyc就是新生成的了。然而这样还是不能运行caffe train。又开始在网上各种搜,反正一下午就干这事了.....
有人说要写 export $PYTHONPATH=./path/to/caffe-sl-master/python:$PYTHONPATH 。但是我又不知道在哪写。无论是在caffe目录下写还是根目录下写都不对。
都快疯了.....
2 import caffe
后来鬼使神差地在python 下试了试“import caffe”结果意外地发现结果竟然是
惊不惊喜、意不意外、喜不喜欢???!!!我以外make pycaffe后自然就可以实现import caffe了......为了解决这个问题,有搜到:“在caffe目录下 ~/.bashrc文件最后添加 export PYTHONPATH=~/caffe/python:$PYTHONPATH
最好是完整的路径/home...(你的caffe路径)/caffe/python”
具体操作是:
vim打开文件后按“I”(insert)对文件进行编辑,即在文件末尾处加上“export PYTHONPATH=/home/jiao/caffe-sl-master/python:$PYTHONPATH
export LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/4.8/libgomp.so”这两行命令,然后按“Esc”推出编辑,按“:wq”保存并退出。
记住之后一定还要“source ~/.bashrc”使环境变量生效。最后就好了。
但是,当我运行caffe train时依旧是报错。原来是要关掉原先的terminal,重新开启后就可以了。问题总算是解决了。。。。。
参考帖子:http://blog.csdn.net/u010417185/article/details/53559107 (真正解决问题的)
http://blog.csdn.net/qq_36259240/article/details/77946409 (差点被误导的)
http://blog.csdn.net/striker_v/article/details/51596628
在caffe中调用python层的问题和解决方案相关推荐
- fortran语言和python_如何在Fortran中调用Python
Python是机器学习领域不断增长的通用语言.拥有一些非常棒的工具包,比如scikit-learn,tensorflow和pytorch.气候模式通常是使用Fortran实现的.那么我们应该将基于Py ...
- java中调用python
在Java中调用Python </h1><div class="clear"></div><div class="postBod ...
- 【Qt】Qt中调用python接口
在Qt程序中调用python函数从步骤 1.在pro中添加python的头文件路径和库 INCLUDEPATH += /usr/include/python3.4 LIBS += -L /usr/li ...
- 在Java中调用Python
写在前面 参考:https://www.cnblogs.com/nuccch/p/8435693.html 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然 ...
- c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法
c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法 时间:2017-05-09 12:32:06阅读:234评论 ...
- python能在excel运行吗-用ExcelPython在Excel中调用Python
Python部落组织翻译, 禁止转载 [介绍] ExclePython是一款轻量级的COM库,它支持你从Excel VBA中调用Python代码和运行Python 其他功能(确实任何语言都支持COM) ...
- excel调用python编程-如何在excel中调用python脚本
如何在excel中调用python脚本 发布时间:2020-07-03 14:15:28 来源:亿速云 阅读:155 如何在excel中调用python脚本?针对这个问题,这篇文章详细介绍了相对应的分 ...
- C#中调用python方法
最近因为项目设计,有部分使用Python脚本,因此代码中需要调用python方法. 1.首先,在c#中调用python必须安装IronPython,在 http://ironpython.codep ...
- c中调用python解释器
c中调用python解释器 非常的简单, Code #include <iostream> #include <string> #include "Python.h& ...
最新文章
- Query理解在美团搜索中的应用
- 刘锋:互联网左右大脑结构与钱学森开放复杂巨系统
- linux操作入门,Linux基础操作
- 查询所有的存储过程哪些中包含某个字符串
- 007_SpringBoot文件上传
- QT打开和保存文件对话框
- python 的常用时间操作,取得当前时间等
- 台湾大学林轩田机器学习基石课程学习笔记15 -- Validation
- 【转】用 PHP V5 开发多任务应用程序
- VTK:图表之RemoveIsolatedVertices
- 【渝粤题库】陕西师范大学202801 中国古代文学(五) 作业
- JS中的预编译(词法分析)阶段和执行阶段
- 关于JavaScript中cookie的用法例子
- 没有钱的男人和有钱的男人区别在哪里?
- 量化策略回测BoolC
- Day2:360培训学习重点笔记(7.14)
- spring-retry重试与熔断详解—《亿级流量》内容补充
- java数据类型及运算符
- 基于 arm 设计开发工具包的 Arm Cortex-M3 处理器设计(第二章:示例微处理器组成及各个Verilog文件功能及作用)
- Linux内核——任务管理
热门文章
- 科技进步能否解决老龄化问题?
- CSS精灵图和字体图标及下载
- 计算机培训行业在阴阳五行中属于什么,医生职业五行属什么,理疗五行中属于什么行业...
- 计算机控制面板的知识,职称计算机WindowsXP知识点:控制面板
- php程序root权限,获取root权限 php执行shell
- AI(Adobe illustrator)绘制人物插画教程
- C++ VS中如何用变量初始化数组
- 如何在Excel中设置舍入精度
- 通过组策略来防治U盘病毒
- java 流式_Java核心教程5: 流式编程