这个故事说来话长,我从双十一买了电脑之后就一直在折腾双系统,眼看双十二都快要到了,我的双系统还是没有搞成,索性就搞一搞windows吧
CUDA 8.0 & cudnn 5.1 提取码:viv3
windows10 安装 tensorflow
添加清华镜像源
|
|
- 安装CUDA 8.0
- 装cudnn 5.1
- 装anaconda python 3.6,务必配置好系统变量
- win+r 输入cmd,建立虚拟机环境:
conda create -n tensorflow_gpu python=3.6
- 进入虚拟机:
activate tensorflow_gpu
- 在虚拟机中安装anaconda:
conda install anaconda
- 安装gpu版本tensorflow:
conda install tensorflow-gpu
出现问题是我一开始装的anaconda python 3.7,创建虚拟机用的命令是conda create -n tensorflow_gpu python=3.7,可能是python版本太新导致tensorflow找不到对应依赖。当时没有理解虚拟机的意义,我把anaconda python 3.7卸载掉重装了anaconda python 3.6。
windows10 安装 caffe
安装caffe实在是太艰难了,从Ubuntu艰难到Windows,在Windows上,我用的VS2015,不想用版本太旧的VS2013
以下主要罗列一下,我遇到坑:
- 直接从
https://github.com/Microsoft/caffe
下载了caffe-master的.zip
包,默认是用VS2013编译的,如这篇博客里面,https://www.2cto.com/kf/201612/575865.html
,https://blog.csdn.net/u012005313/article/details/77351727
,里面没有可以直接修改vs版本的文件;虽然有博客介绍了怎么去修改其他文件搞定这个问题https://blog.csdn.net/hanzy88/article/details/79183631
,但是我害怕牵一发动全身,没有参考;另外,据说还有更简单的方法,但是没有尝试,https://www.jianshu.com/p/d6d5276e0a0c
- 把上面的
.zip
压缩包删了,安装Git,git clone https://github.com/BVLC/caffe.git
- 下载cmake,把
./bin
配置到环境变量中 cd caffe
,git checkout windows
notepad++打开
caffe/scripts/
下面的build_win.cmd
文件
基本参数配置
cudnn包含路径
注:
(1)MSVC_VERSION 根据你VS项目版本来,14
对应VS2015的项目,12
对应VS2013的项目
(2)只使用CPU的将CPU_ONLY
改为1
(3)PYTHON_VERSION
根据你本机版本来,我是2.7所以是2,3.5就是3
(4)CUDA_ARCH_NAME
是CUDA的架构名称,可选值有:Kepler,Fermi,Maxwell,Pascal,Manual,All,Auto,Auto是自动检测最优值
(5)WITH_NINJA
要设为0,你不会用到ninja编译器来进行编译
(6)改完后去scripts\build
中把CMakeCache.txt
文件删掉。因为这里面记录的是用Ninja来编译的,不删除的话不能用VS来编译
(7)在多个 GPU 上运行 Caffe 需要使用NVIDIA NCCL
执行
scripts/build_win.cmd
,报错。报错信息主要是说v140没有对应python 3.6的配置方案。这里涉及到VS版本和python版本的对应关系是v140+python2.7或者v140+python3.5,因为前面已经把tensorflow装到了python 3.6里,这次不能删除再装过python 3.5。因此,我采用了虚拟机方案
(1)conda create -n py35 python=3.5
(2)activate py35
(3)conda install anaconda
再次
scripts/build_win.cmd
,报错。一个名为“libraries_v140_x64_py27_1.1.0.tar.bz2”的依赖包无法下载成功。
(1) 可以从https://github.com/willyd/caffe-builder/releases下载
(2) 直接点下载没有成功过,可以右键把链接地址复制到迅雷里面挂着下载还挺快的。
(3) 然后把依赖包放在对应的依赖目录里面,这个报错信息会提示,一般就在C:\Users\username\.caffe\dependencies\download
(4) 手动修改caffe/camkae
下面WindowsDownloadPrebuiltDependencies.cmake文件再次执行
scripts/build_win.cmd
,cmake应该就将Caffe.sln工程编译好了进入
caffe/build
,用VS2015打开caffe.sln
,右键ALL_BUILD,点击生成
编译完成:由于本人的powershell设置有点问题导致不能直接运行
.\examples\mnist\create_mnist.ps1
,
因此把ps1脚本里的命令单独拆分出来运行。123.\build\examples\mnist\Release\convert_mnist_data.exe .\examples\mnist\train-images.idx3-ubyte ` .\examples\mnist\train-labels.idx1-ubyte .\examples\mnist\mnist_train_lmdb.\build\examples\mnist\Release\convert_mnist_data.exe .\examples\mnist\t10k-images.idx3-ubyte \` .\examples\mnist\t10k-labels.idx1-ubyte .\examples\mnist\mnist_test_lmdb
同样的问题,训练用train_mnist.ps1,我也把运行命令抽出来跑(不过,应该可以写到.bat命令里面)
.\build\tools\Release\caffe.exe train --solver=.\examples\mnist\lenet_solver.prototxt
可以看到使用GPUs: 0,最终训练完成,达到精度0.99,耗时约半分钟
另外,实验表明,单独写一个bat文件作为入口同样可行在Windows上搜索
Anaconda Navigator
,进入之后把root
切换到py35
,点击spyder下面Launch,进去后敲入以下代码:
报错,WTF!!!
Google了一下,https://stackoverflow.com/questions/37666241/importing-caffe-results-in-importerror-no-module-named-google-protobuf-interna 安装prototxt
成功导入caffe