tensorflow和caffe共存问题
来源:互联网 发布:2017百度春运大数据 编辑:程序博客网 时间:2024/06/02 01:58
前几天想要跑个Hinton大神的CapsNet,是用tensorflow实现,就安装了个tensorflow,结果caffe不能用了
将解决办法记录如下:
第一个问题:cudnn版本不兼容问题
因为之前一直用的caffe,cudnn用的是v5,现如今默认安装的tensorflow用的是cudnn v6,年少无知果断下了一个cudnn v7,然后把v7软链接成v6,具体步骤:
1.删除原来的cudnn
sudo rm -rf /usr/local/cuda/include/cudnn.hsudo rm -rf /usr/local/cuda/lib64/libcudnn*2.将新下载的软件包解压到home文件夹下
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/sudo cp cuda/lib64/lib* /usr/local/cuda/lib64/
3.建立软链接
sudo chmod +r libcudnn.so.7.0.3 sudo chmod +r libcudnn.so.5.1.5 sudo ln -sf libcudnn.so.5.1.5 libcudnn.so.5 sudo ln -sf libcudnn.so.7.0.3 libcudnn.so.7 sudo ln -sf libcudnn.so.7.0.3 libcudnn.so.6 sudo ln -sf libcudnn.so.7 libcudnn.so sudo ldconfig
bingo!
然而,caffe用的是低版本的cudnn进行的编译,因此这样就牺牲了caffe成就了tensorflow。
解决办法:
1.将~/caffe/include/caffe/util/cudnn.hpp 换成最新版caffe里的相应目录下的cudnn.hpp;
2.将~/caffe/include/caffe/layers/下所有cudnn开头的文件都替换为最新版caffe里相应目录下的同名文件;
3.将~/caffe/src/caffe/layer下所有cudnn开头的文件都替换为最新版caffe里相应目录下的同名文件;
紧接着出现第二个问题:依赖包版本不兼容问题
用之前编译好的caffe训练数据时出现:
1.TypeError: slice indices must be integers or None or have an __index__ method
这是因为安装tensorflow时把numpy更新到最新版了,但我们当时编译lib时用的是低版本的numpy,降级到1.11.0就可以了。
2.AttributeError: 'module' object has no attribute 'text_format'
这是因为安装tensorflow时把protobuf更新到最新版了,但我们当时编译lib时用的是低版本的protobuf,降级到2.6.0就可以了。
这期间还有点小曲折,也一起记录下来,因为我是用requirements.txt来安装需要的python依赖包,所以pip都默认安装成最新的了,因此编译lib时用的是最新版的包,当训练网络时代码会出现版本不兼容问题,比如
ImportError: numpy.core.multiarray failed to import
此时再进行版本升、降级是没有用的,编译好的路径已经是最新版的了,所以需要安装对应版本(requirements.txt里是最低版本)后重新编译lib,至于caffe要不要重新编译,可以尝试一下。
一同折腾,难保以后不会出现类似的问题,因此需要一个一劳永逸的办法:用Virtualenvwrapper解决该问题
$ sudo pip install virtualenvwrapper
把下面几行加入~/.bashrc
export WORKON_HOME=$HOME/virtualenvs # 放所有虚拟环境的地方source /usr/local/bin/virtualenvwrapper.sh在终端输入
source ~/.bashrc
pip install opencv-python其他的缺什么再按就可以了。
AttributeError: 'module' object has no attribute 'text_format'
- tensorflow和caffe共存问题
- 安装教程:使用Anaconda创建caffe和tensorflow共存环境
- sql2000和sql2005共存问题
- Structs2和servlet共存问题
- listView和scrollview共存问题
- scrollview 和listview共存问题
- hibernate和mybatis共存问题
- caffe和tensorflow中padding区别
- win7 部署caffe和TensorFlow、PyTorch
- tensorflow和caffe的卷积参数差别
- caffe和tensorflow中padding区别
- win10配置caffe和tensorflow+faster Rcnn
- sql2000和sql2005共存问题汇总
- 关于Listview和ScrollView的共存问题
- msvcr80.dll和msvcr80d.dll共存问题
- Listview 和 button imageButton 等共存问题
- struts2和servlet的共存交互问题
- struts2和servlet的共存问题
- 虚继承的偏移量问题
- Framework之锁屏分析与禁用锁屏
- 基于大数据技术的全国高速公路通行数据 动态监测平台建设
- JAVA8 lambda 微解
- 操作CSV文件例子,并且加上文字处理:统计相同功能的问题单(报告画图用)
- tensorflow和caffe共存问题
- 16进制转为10进制
- 报错localhost is not allowed to connect
- faster-rcnn在win10+cuda8.0+1080ti+vs2013+matlab2015b下的配置 疑难问题解答
- mysql中jdbcType的匹配
- html5 progress标签的使用
- 对几种开源的TCP/IP协议栈分析
- EventTrigger接管所有事件导致其他事件无法触发
- IDA Create Unicode String(English)