0 写在前面
第一次写博客,写的啰嗦一点,希望能把我踩过的坑的经验和大家分享一下,使大家能够少走弯路,重点放在深度学习本身,而不是安装环境上。
1 安装python
推荐使用anaconda安装,Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。
anaconda官网:https://www.anaconda.com/
国内推荐使用清华镜像源,如果你有ipv6得话,速度更是会起飞的!(ps:以后更新不管是使用pip还是使用conda都可以使用清华源加速,也可以使用其他的源,速度都比较快)
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
比如使用清华源加速下载pymysql
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql
anaconda(python)版本不需要特别新(py3.5和py3.6都可以,推荐py3.6),笔者这里因为喜欢新鲜技术,下载了最新的anaconda,内置python3.7版本,后续我们要构建虚拟环境,所以外面的python版本并不是很重要;将深度学习环境与其他环境隔离开,这是一个好习惯,同时进行多个项目开发的时候,尤其重要。
2 安装“蛋疼的”外部依赖
2.1 查看显卡型号,及使用的cuda版本
(ps:笔者笔记本win10系统,显卡1060 6G,内存8G,cuda9.2.147等等)
首先查看使用显卡及其型号,在控制面板中,选择右上角小图标,选择nvidia控制面板
进入到nvidia控制面版,选择系统信息
查看Google的TensorFlow对于cuda和cudnn支持
tensorflow-gpu v1.9.0 | cuda9.0 | cuDNN7.1.4可行 | 备注:7.0.4/ 7.0.5/ 7.1.2不明确
tensorflow-gpu v1.8.0 | cuda9.0 | cuDNN 不明确 | 备注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
tensorflow-gpu v1.7.0 | cuda9.0 | cuDNN 不明确 | 备注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
笔者目前的版本是cuda9.2.147版本,官方对于cuda9.2是不支持的,换句话说直接使用pip或者conda安装会出问题!!!
官方对于cuda9.2是不支持的,换句话说直接使用pip或者conda安装会出问题!!!
官方对于cuda9.2是不支持的,换句话说直接使用pip或者conda安装会出问题!!!
官方对于cuda9.2是不支持的,换句话说直接使用pip或者conda安装会出问题!!!
不过可以使用第三方大神编译的外部库,达到同样的效果,如果还没有更新到9的同志,可以参考上面的图片,建议大家使用整版本的cuda,比如8.0和9.0,出问题的概率小,如果已经升级到9.2也不用着急,接着往下看。
2.2 安装VS
VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.Net Core、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。
安装时只需要C++模块即可,其他模块看情况,会花费很多时间,尤其是全家桶一起装,创建还原点就会浪费大量时间,不用的话尽量别选太多。
地址:https://visualstudio.microsoft.com/zh-hans/downloads/
2.3 cuda和cudnn下载安装
CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA?是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
cuDNN的全称为NVIDIA CUDA? Deep Neural Network library,是NVIDIA专门针对深度神经网络(Deep Neural Networks)中的基础操作而设计基于GPU的加速库。cuDNN为深度神经网络中的标准流程提供了高度优化的实现方式,例如convolution、pooling、normalization以及activation layers的前向以及后向过程。
根据上一步我们需要下载cuda9.2和其对应的cuDNN库7.1
cuda下载地址:https://developer.nvidia.com/cuda-92-download-archive?target_os=Windows&target_arch=x86_64&target_version=10
cuDNN下载地址:https://developer.nvidia.com/cudnn (需要注册,这里想骂nvidia一句,经常登陆bug)
cuda下载完成后,直接安装就行,不想管的话就默认操作安装,地址默认在:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2 ;对于cuDNN则只需要解压之后覆盖到cuda相应目录下即可。
笔者注:我的conda安装在D盘,曾经多次使用conda安装之后出现错误,后来发现这个文件指向的位置使罪魁祸首,也是tf-gpu版本能够运行的根本需求,感兴趣的可以看看tf的python源码(下面那个文件,具体位置使你安装的tensorflow的位置)D:\conda\envs\tfg\Lib\site-packages\tensorflow\python\platform\build_info.py
这里使最蛋疼的部分,也是经常出事故的地方,之后的就比较平坦了
3 安装tensorflow(非官方版本)
如果有和我一样用py3.7的小伙伴,可以使用前面提到的虚拟环境
conda create --name devname python=3.6
activate devname
##推出虚拟环境使用deactivate
官方对于cuda9.2是不支持的,换句话说直接使用pip或者conda安装会出问题!!!
原谅我一直提这个问题,因为这是我废了好久才发现的原因,8.0或者9.0版本的tf-gpu版本可以直接参考其他的方法,使用pip或者conda均可。
对于cuda9.2的小伙伴,请接着来,别出戏,哈哈!!!
大神编写的针对cuda9.2的github:https://github.com/fo40225/tensorflow-windows-wheel
下载下来,然后使用python工具进入其所在位置安装,具体方法参考上面第一节,记得联网!
python install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-windows-wheel
之后再命令行输入python 然后import tensorflow ,如果import成功就说明没问题
4 问题分析
1 出现 RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb 报错 这个是numpy版本问题。由于大神自带的编译的numpy和自带版本冲突
解决方法:
pip install numpy –upgrade
法二:
conda uninstall numpy
conda install numpy
(ps:可以使用清华源加速,这里就不写了)
2 同时出现 ImportError: No module named '_pywrap_tensorflow_internal’和ImportError: DLL load failed: 找不到指定的模块。很可能就是我说的那个红色字体的问题,重新仔细读一遍,你就能解决问题了