赞
踩
小试安装caffe环境,一路跌跌撞撞若干的错误,花了1天多才安装成功跑了测试集,参考了N多个博客,现在记录一下,希望能对别人有些帮助。没有完全相同的环境,遇到的情况各不相同,我要尽可能的记录详细,需要一些动手能力,文章以笔者的时间线描述。
无C++开发背景,自学了机器学习基础,看了两天python用法,想搞一下框架初试水,能力一般,水平有限。
安装成功原版的Caffe,Caffe有原版和windows版本,笔者对原版有兴趣,坚持原版。git地址
https://github.com/BVLC/caffe/tree/windows
编译CPU版本,其实笔者CPU,GPU版本的编译过程都看过了,暂时只想先玩玩CPU版本,提升兴趣
总览:
操作系统版本:win10
python版本 :3.7.2
Visual Studio版本:vs2015
Miniconda3 版本:Miniconda3-latest-Windows-x86_64.exe
CMake 版本:3.15.5
操作系统版本:win10 1903版本
采坑0:笔者操作系统是自己找的,使用没有出现问题,但是安装Anaconda3总是失败,虽然我看到安装成功,但是我知道是失败的,每次失败表现还不一样,打开之后,要么缺很多文件,要么编译出现奇怪错误,没有什么好招,最后忍不了,选择了曲线救国,安装Miniconda3使用,如果后面还需要用Anaconda3,我可以使用Miniconda3安装Anaconda3啊,暂时就这样。
检查anaconda/miniconda有没有安装好,环境变量配置好,打开命令行,执行命令
conda info
看反应自主决定。
记录下我安装失败的版本
Anaconda3-5.3.1-Windows-x86_64.exe
Anaconda3-2018.12-Windows-x86_64.exe
Anaconda3-2019.10-Windows-x86_64.exe
Anaconda3安装包找的清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
python版本 :3.7.2
注:笔者有些取巧,后面指不定会出什么问题,官方说只支持 python2.7 和python 3.5版本,求稳还是乖乖使用3.5吧,笔者就保留这点任性了。
Visual Studio版本:vs2015 安装包3.73G
下载地址非官方下载地址,下载之家的,免费版那种 http://www.downza.cn/soft/176563.html iso镜像,很好用,下载速度很快。
非常大,虽然我安装在D盘,我的C盘还是被占用了接近10G,预留好20G的空间,免得进行不下去。
踩坑1:vs2015我是使用默认组件安装,后面编译时候会出错,需要安装windows 10 sdk,我后面又重复安装了一次,多费了不少时间。
可能只需要1个sdk,笔者不想再重复装一次了,就这样了。
Miniconda3 版本:Miniconda3-latest-Windows-x86_64.exe
Miniconda3-latest-Windows-x86_64.exe | 51.5 MiB | 2019-10-26 03:36 |
Miniconda3安装包找的清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
安装时候勾选添加到环境变量,会自动向环境变量中加入好几个
踩坑2:安装路径问题,从部分博客中看到了安装路径不能带空格,这里亲自试了一下,带括号也是不行的!!废了我好久的时间。它报错不会跟你说这个的,编译时八竿子打不着的错误,但是真的不可以带括号,CMake也是,安装路径要小心,用稳妥的起名方式
CMake 版本:3.15.5 没太注意,直接用最新版。
百度一下,找的最新版,找到了腾讯的软件中心,秒级下完,记得加入到环境变量 D:\ProgramFiles\CMake\bin
https://pc.qq.com/detail/11/detail_23371.html
git上下载windows版本caffe-windows
按照博客,准备用CMake编译caffe-windows之前,先修改个文件,caffe-windows\scripts\build_win_cmd
我们要用vs2015,所以 MSVC_VERSION=14
我们要cpu版本,所以CPU_ONLY=1
我们用CMake,所以WITH_NINJA=0
我们没有安装CUDA,所以有关cuda使用auto就可以
我们要用python3,所以PYTHON_VERSION=3
我暂时不打算用MATLAB,所以BUILD_MATLAB=0
我们要使用Miniconda,所以要改路径
我们要DEBUG运行,所以要标记
从头到尾通读一下,把该改的地方改一改
CMake 设置一下子,开始configure
信心满满,然而现实很骨感
错误是肯定的,关键有日志,根据日志改动就好
这就是日志,艾玛我要哭,这是什么鬼,only one么。
踩坑3:CMake给的信息真的少,去git项目上找文档去
果断去git上面找找,有没有什么readme啥玩意儿的,还真找到了
忽略git操作,早就下好了,原来刚才调整的东西,就是直接执行就ok了啊,原谅我的无知
赶紧调出cmd,开始执行,用管理员打开哦,亲测powershell也是可以的
执行命令,准备接待错误。终于反馈了出来
踩坑4:这个是我遇到次数最多的问题,CMake configure的时候会有缓存,因为动了动路径啊,版本啊什么的,很容易出来这个错误。解除也很简单,手动删除文件bulid里面的所有文件即可,每次都是干干净净的configure,肯定不会出错
ok,开开心心继续configure
ok,遇到了sdk没有安装的问题,前面有介绍,详见: 踩坑1
让我们继续configure,程序会进行下载caffe安装windows依赖包,就像这样子
知识点:
1.这个下载比较慢,我们可以直接去git下载
https://github.com/willyd/caffe-builder/releases/ 使用Version 1.1.0 版本
2.进行到了这里,我们的C:/Users/Administratior/.caffe文件夹会创建,(我想自己创建这个文件夹可是创建不成功)我们自己下载好包后,就按照上图的路径去放,看到有个博客说要解压,我没有解压也直接跑过。文件放好后需要小改动文件,向下看。
OK,我们摆弄好继续干,我们说到了使用python3.7,然后我就按照一位博主写的搞了起来,表达感谢
https://blog.csdn.net/dear_zhoubi/article/details/96438730
将文件 工程路径\caffe-windows\cmake 下的文件WindowsDownloadPrebuiltDependencies.cmake 改动一下,我们从名字上可以看出,这个文件是有关下载依赖的。
后面我们遇到的情况可能就不相同了
譬如说:
踩坑5:把所有的3.5都改成了3.7,就会出现 Could not find url for MSVC version = 1900 and Python version = 3.7.
踩坑6:我把文件放上去后,居然出现了sha1不匹配,然后把压缩包给我删了。。。
提示 Removing file because sha1 does not match.
解决:我既然知道我放的包是肯定对的,那就不客气了,将压缩包再次放到指定文件夹下(小心这里可能会忘了再次放压缩包,我观察到sha1比对失败,它可是会删除文件的),然后打开工程目录\caffe-windows\cmakeWindowsDownloadPrebuiltDependencies.cmake
将sha1比对注释掉,这个sha1比对就是个文件完整性/防篡改的比对,没啥用
踩坑7:莫名其妙还是去尝试下载压缩包文件或者 Could not find url for MSVC version = 1900 and Python version = 3.7.错误
解决:我直接不去下载文件不就得了,还是那个文件,反正只要能弄懂点意思,上手就是一顿改
第一回合结束,可能笔者专走羊肠小路,本来点一下的事儿非要这么折腾,难得折腾。
还是执行configure的命令,工程目录\caffe-windows\scripts 执行build_win.cmd
踩坑8:没有安装numpy,直接掉坑
如果遇到以下的错误信息,80%都是没有安装numpy,没有安装的意思是没有使用编译所用的conda进行安装,(原本我觉得我安装了,后来才发现是其他工程环境使用pip安装的)
1.ImportError: Importing the multiarray numpy extension module failed. Most DLL load failed:找不到指定模块.
2.ModuleNotFoundError: No module named 'numpy' Could NOT find Numpy(missing:NUMPY......
3.CMake Error at CMakeLists.txt .The dependency target "pycaffe" of target "pytest" does not exist.
解决也容易,将numpy安装完成就好
conda install numpy
当然还需要安装boost,出现的错误同上
conda install boost
如此,不出意外的话,离成功就要不远了, 还是执行configure的命令,工程目录\caffe-windows\scripts 执行build_win.cmd
--------------------------------------------------------------
当然,到这里也可以使用CMake的GUI图形界面,笔者也试了一次
再次执行configure按钮的话,应该会报一个错
注意看红框里面的配置
最主要 BLAS选项不要用Atlas,使用OPEN
其他选项再次检查一圈,比如CPU_ONLY,python_version=3,清理一次缓存
工程目录\caffe-windows\scripts\build文件夹中会产生好多文件,注意,有些没有configure成功的时候,也会出现日志,configure done generate done,我们简单的判断下,build文件夹很多才算configure成功
使用vs2015打开sln文件,可以看到很多项目,勾选不同,或多或少,右键生成解决方案,耐心等待
最后会出现页面,完成
我以为如此就完成,但是众多的warning提醒了我,还是需要谨慎。
warning : cannot resolve item 'python35.dll'
我们心里知道,文档说python3要用python3.5,我只安装了python3.7,看起来没有错误,一切都成功了,那我们就来跑一个mnist数据集吧
多谢此博主,完全照抄操作
https://blog.csdn.net/qq_38325503/article/details/100636094
战战兢兢以为会顺顺利利,果然,执行的时候出现弹框
踩坑9:python3真的只找3.5版本
解决: 其实从vs2015生成解决方案的时候我就在想,他是想找这个叫python35.dll的文件而已,只要文件名相同,我可以选择张冠李戴的,说干就干,我将我安装的python37.dll拷贝一份,重命名一次叫python35.dll,然后跑一次,果然成功了。
拷贝粘贴的应该是在上面步骤中,build_win.cmd配置的路径中的
后面的深入使用中,希望这里没有坑,故事结束。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。