caffe-python3.5 的安装相比Linux要更加麻烦一些,首先caffe只支持python2.7和python3.5的,Linux上装在docker里面很方便,windows我一直使用的是python3.6的,又不想为此卸载python3.6来装python3.5,所以就需要使用Anaconda配置多个python独立环境。
1.使用Anaconda配置多个python独立环境
如果windows本身安装的就是python3.5的话可以忽略这部分。
1.1 打开Anaconda Prompt
1.2查看当前已有环境
在Anaconda Prompt中输入:
conda env list
如果之前没有配置过的话,就仅有base一个环境。
1.3创建新的python环境
conda create --name 环境名 python==版本
#例如 conda create --name python35_env python==3.5
安装完毕后,环境就初步配置好了。
1.4进入新环境
再次查看当前所有环境。
其中标出*的环境为当前所处环境,我们希望进入新创建的python35_env环境进行更多配置。
activate python35_env
这样就进入了指定环境,(base)变为(python35_env)。
1.5将新环境加入到系统环境变量
2.安装Caffe
2.1 克隆代码
环境准备完毕后,依次执行
git clone https://github.com/BVLC/caffe.git
cd caffe
git checkout windows
需要使用git进行克隆。
2.1.1 修改build_win.cmd
在执行 scripts\build_win.cmd前,修改scripts文件夹下的build_win.cmd文件(用记事本打开即可),然后按照我的修改进行修改。注意:绿框默认最后编译的是Release版本,如果需要Debug版的,则在绿框处修改为Debug。
2.1.2 修改layer_factory.cpp
如果不修改这个文件,最终会报错:
Check failed: registry.count(type) == 0 (1 vs. 0) Layer type Convolution already registered.
该文件在 E:\caffe\src\caffe 下(这是我的路径)所需修改的是第46行的AddCreator函数,修改如下:
// Adds a creator.
template <typename Dtype>
void LayerRegistry<Dtype>::AddCreator(const string& type, Creator creator) {
CreatorRegistry& registry = Registry();
// CHECK_EQ(registry.count(type), 0) << "Layer type " << type
// << " already registered.";
// registry[type] = creator;
if (registry.count(type) == 0)
{
registry[type] = creator;
}
}
如果是编译已经完成了才发现上面的报错的,layer_factory.cpp修改完后要重新编译的。
2.2 Caffe编译
确保Python环境已经切换到python3.5之下了(可以在anaconda prompt中进行)(一定要切换到3.5下),然后运行build_win.cmd文件即可(在CMD下输入该指令):
scripts\build_win.cmd
这部分的坑超级多,解决方案在这,只需查看最后解决方案部分就可。
如果提示libraries_v140_x64_py35_1.1.0.tar.bz2下载失败,可以在这里下载完,再放入对应文件夹下就行:
链接:https://pan.baidu.com/s/1DfO6GqYXNzOrBzMQ5Dgctw
提取码:caf8
执行完成之后,到caffe/build文件夹下,双击Caffe.sln在VS2015中打开,执行ALL_BUILD之后,如下图所示:
2.3验证
在CMD下输入 python 具体如下:
没有报错就是没问题,如果报错,一般是python的一些库没安装或者版本太高导致,输入一下命令试试(要在python3.5之下):
pip install numpy scipy protobuf==3.1.0 six scikit-image pyyaml pydotplus graphviz
具体可以参考博客二最后解决方案部分。
到此caffe-python3.5 安装就完成了!!!
参考:
博客一:https://blog.csdn.net/ik99s/article/details/121677484
博客二:https://blog.csdn.net/pp2373886592/article/details/123816636
博客三:https://blog.csdn.net/qq_42722197/article/details/122749759
博客四:https://blog.csdn.net/qq_42270469/article/details/108273000