win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras

学习的话,用linux还是比较好,但是双系统虚拟机跑的话只能用CPU,太慢了,所以还是要装windows,用上我的两块GPU。

因为是照着别人的搭配选择的版本,整体来说比较简单,除了一些网络问题和等待,没太大的阻碍,比linux下默认自带python3的anaconda弄需要python2的caffe简单多了(手动滑稽)。

过于详细的流水教程就不写了,网上很多了,主要列一些自己遇到的坑。

 

 

目录

Anaconda

conda 三方源

CUDA

CUDNN

CUDNN的版本兼容坑

tensorflow GPU版:

测试库导入和显卡信息:

pycharm和conda的兼容:

anaconda导航中jupyter启动路径设置:

使用GPU进行训练,对比CPU、GPU性能表现:

tensorboard

IE内核的浏览器不可用

更新:CUDNN版本被锁定问题

“CUDNN初始化失败,CUDNN没实现”:

Keras






 

  • Anaconda

 

Anaconda就算python发行版,只是自带管理工具,所以,先把win下的python删了比较好弄一些,尤其环境变量之类的

 

https://www.anaconda.com/distribution/#download-section

anaconda 官网

两个版本,一个命令行,一个graphical,是图形界面,而不是GPU版本

环境变量需要手动加scripts

d:\Anaconda3;d:\Anaconda3\Scripts;

也不行!!!!!!!!!

 

最新版本的anaconda弄成python3.7了,还得降级或者新建环境。

 

下载的graphical,却没有navigator,只有一个命令行,命令还没有,安装失败。。

问题来自旧python,删干净之后装成功。

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第1张图片

 

 

 

  • conda 三方源

 

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --set show_channel_urls yes

 

 

源搞定之后降级安装一个3.6环境

 

conda create --name py36 python=3.6

conda activate py36

deactivate

 

更新:三方源不行了,继续用回老源了。(现在好像能用了,和politics有关吧,没办法,随缘)

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第2张图片

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第3张图片

 

 

 

 

 

  • CUDA

https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=7&target_type=exelocal

网络不好,下载会出故障,无论哪个版本,都可能是这样,可能只有几百B的exe,也可能看起来和官网描述的文件大小几乎一样的exe,但都是失败。最好从网上多找下。

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第4张图片

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第5张图片

 

显卡驱动支持9.1(新驱动10.1),但是tensorflow的话,有兼容问题,所以CUDA最好先用9.0。

https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=7&target_type=exelocal

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第6张图片

 

 

CUDA选精简安装的话不只是不能选择安装组件,还不能选路径!!!C盘局促的话需要注意。

再次运行安装程序也不提供卸载旧版本功能,需要自己去控制面板一个一个卸载,坑!因为驱动之类的有一系列耦合问题,会非常麻烦,尤其遇到360的阻挠,更是难上加难!总之,重装比较烦,最好一次选好。

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第7张图片

 

  • CUDNN

插入式,复制到CUDA的路径下

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第8张图片

 

windows下的文件会少一些,分别复制到 \NVIDIA GPU Computing Toolkit\CUDA\v9.0\对应位置,当然,结构是一样的,整体复制就行了。

 

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第9张图片

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第10张图片

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第11张图片

路径不要找错,有appdata,有安装目录,正确的操作应该会提示合并,没有替换。
win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第12张图片

想卸载cudnn就是把这几个文件删掉。

 

CUDNN的版本兼容坑

Loaded runtime CuDNN library: 7500 (compatibility version 7500) but source was compiled with 7003 

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第13张图片

CUDNN不是第一个大版本一致就行,第二个数字也有要求,我以为CUDNN7就可以了,其实必须是7.0,不能是7.5,其实问题不在nvidia,支持CUDA9.0都是支持的,只是tensorflow的版本兼容,可能新版tensorflow会好,但是为了整体兼容,我就不升高级tensorflow了,下载v7.0.5。

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第14张图片

选个对应版本

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第15张图片

 

 

  • tensorflow GPU版:

tf版本没太多忌讳,而且我的6700也支持AVX。(但是想要tf使用AVX好像得自己编译了,所以还是利用不上。)

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第16张图片

 

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第17张图片

我这套环境其实不适合直接装最新,这会装1.13.1,不支持我现在的CUDA9.0+CUDNN7.0.5!

pip install --ignore-installed --upgrade tensorflow-gpu

直接都卸载了。换个1.5。

 

如果有互相干扰的问题,最好是用conda来装,别用pip。

pip install tensorflow-gpu==1.5.0

conda install tensorflow-gpu==1.5.0

 

  • 测试库导入和显卡信息:

import tensorflow as tf 

tf.test.gpu_device_name()

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第18张图片

 

from tensorflow.python.client import device_lib device_lib.list_local_devices()

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第19张图片

 

剩下就是其他的numpy、pandas、matplotlib之类的都用conda install走一遍。

 

 

  • pycharm和conda的兼容:

社区版的免费,直接下就可以。

http://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows&code=PCC

坑1:重装系统不要妄图用原来的当绿色版,至少我是失败了,会有些报错,新装一个就好了。

坑2:别太着急删原版,如果你有些很有用的scratches,其实这是在安装目录下的,需要自己备份。

 

pycharm需要设置环境,而anaconda有虚拟环境,不可能直接找到。

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第20张图片

工程设置,别选new,选已有的。从右边按钮手动添加

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第21张图片

 

找到自己配置的envs路径,找到python.exewin7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第22张图片

确定后,可以看到,自己装的库都加载出来了,说明设置成功

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第23张图片

打印测试,我装的TF1.5.0

 

  • anaconda导航中jupyter启动路径设置:

虽然可以从命令行改路径启动,但是还是导航界面方便些。

但是导航界面的jupyter只是运行,不能设置

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第24张图片

他默认在C盘,不能再向上,但是我不在C盘运行

去命令行生成一个配置文件(这个配置是共享的,但是你想运行下边这行,前提还是当前env安装了jupyter)

jupyter notebook --generate-config

 

放开 c.NotebookApp.notebook_dir这句注释,自己指定dir

 

成功

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第25张图片

 

 

jupyter不像linux有多个内核可选了,因为这个jupyter是根据每个虚拟环境单独安装的,就属于py36,选python3即可。

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第26张图片

加载成功

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第27张图片

还有,快捷方式的用户名后缀%USERPROFILE%删掉,保持裸的.py就好。

 

如果从Anaconda导航启动notebook,还会有个问题,没有提示你口令是什么:

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第28张图片

他会找默认浏览器,比如IE,而你不想用,换个浏览器打开就完蛋:

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第29张图片

根据提示,用jupyter notebook list可以看到列表,复制出来就好。

发现又一个问题,已经开了过多进程,却没法简单的靠ctrl+c或者jupyter的shutdown(没这个命令)关闭掉。不知道是不是ANACONDA NAVIGATOR的Bug,他没有一个运行状态反馈机制,只能让你重复的点‘launch’,越开越多,烦。

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第30张图片

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第31张图片

只能杀掉了。所以还是用命令行启动更方便点,或者启动一次就一直挂着,以后就用口令继续使用之前的进程。

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第32张图片

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第33张图片

 

最后,猎豹等浏览器可能会因各种bug打不开jupyter,换个浏览器试试(360、chrome)

 

 

 

 

使用GPU进行训练,对比CPU、GPU性能表现:

使用简单神经网络进行MNIST的训练。

显存爆了,每个卡,3G,只剩下三百M(这里可以通过配置动态增长或者指定显存使用比例来解决)

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第34张图片

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第35张图片

使用nvidia自带程序

浏览器和音乐播放器都在吃显存。

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第36张图片

运行太久了,重新开机,显存足够,发现不是显存的问题,是cudnn的版本问题

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第37张图片

 

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第38张图片

换回CUDNN7.0.5之后,先不管吓人但是没卵用的warning,可以正常训练了。

 

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第39张图片

 

使用MNIST训练,batch_size=50,没有额外优化情况下,双1060 3G对比i7 6700,大概是13倍的关系。

GPU:

虚拟机tensorflow-CPU版:

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第40张图片

考虑到虚拟机只分了一半的核,使用windows跑,2000步也是188的时间,和虚拟机几乎一样,说明CPU训练没有多线程优化

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第41张图片

为了凸显GPU的价值,加大batch_size到500试一下,21.7倍,batch_size大了就更可能利用到GPU的优势。

CPU

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第42张图片

GPU

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第43张图片

 

弊端:

跑测试集,如果一下跑整个数据集,GPU会爆,CPU却不一定爆内存(本机16GB)。

所以进行准确度检测的时候,可以分批次进行,最后求平均。

 

tensorboard

也专门用conda install了一下,没能解决,报错信息有所不同

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第44张图片

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第45张图片

pip查询,不知道是不是版本不匹配,把下面这些tensorflow和tensorboard全删掉

 

之前用pip装的tensorflow,改用conda装,不过没有1.5.0、1.5.1,随便蒙一个试试

conda install tensorflow-gpu==1.9.0,再次运行tensorboard,可用(同样能兼容之前所安装的CUDA9.0+CUDNN7.0)

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第46张图片

(应该直接可用的,如果仍然不行?加一个cudatoolkit==8.0).

IE内核的浏览器不可用

如下错误提示,360和猎豹都不行,换chrome可以。

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第47张图片

 

 

 

 

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第48张图片

 

 

 

--------------------------------------------------

更新:CUDNN版本被锁定问题

装fakeapp时候运行过两个cudnn的补丁,然后版本就不对了,无论怎么删cuda重装,都是提示版本不对,认为我是7.3。

经排查,发现问题可能出在那个json上。

 

如图,这个7.3.1的json可能有关系。

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第49张图片

尤其这两个文件夹,都带着库呢, 其实就等于独立在pkgs下存了7.3.1的库。可能运行的时候通过json重定向一下就把我在CUDA目录的7.0.5给覆盖了。

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第50张图片

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第51张图片

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第52张图片

 

 

删除这些,也没能解决问题,另一个可能是VS2015的runtime,因为fakeapp让安装2015,我把2017删了。

目前没找到解决途径,新建一个conda的env能解决,说明windows系统下的CUDA和CUDNN版本没错,7.3是卡到环境里了,卸载tensorflow重装等都重置不了这个设置。

 

 

“CUDNN初始化失败,CUDNN没实现”:

could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED

error retrieving driver version: Unimplemented: kernel reported driver version not implemented on Windows

经验证,CUDA与CUDNN版本都没问题,而且这里提示的不是CUDNN版本不匹配,是没实现,是初始化错误。

 

2019-07-04 00:42:33.851400: E C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\stream_executor\cuda\cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2019-07-04 00:42:33.852400: E C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\stream_executor\cuda\cuda_dnn.cc:389] error retrieving driver version: Unimplemented: kernel reported driver version not implemented on Windows
2019-07-04 00:42:33.852400: F C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\kernels\conv_grad_input_ops.cc:961] Check failed: stream->parent()->GetConvolveBackwardDataAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), &algorithms) 

handler占用?

1.重启电脑!未解决!

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第53张图片

2.重新复制7.0.5的cudnn到指定目录!

未解决!!!!

3.更改pycharm的interpreter,没错,好久没用,有些旧project对应的interpreter还是老的,所以出错。

 

 

 

Keras

最好单独建一个conda环境,因为TF有TF相对需要兼容的版本(考虑CUDA和CUDNN等)

如果keras默认安装2.2.4(我目前遇到的版本),实际运行有些兼容问题,所以如下,单独安装一对匹配的版本。

 

pip install tensorflow==1.2.0

pip install keras==2.0.9


 

 

ImportError: Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.

解决了版本的问题,还有plot(画计算图的工具)的问题,说graphviz没安装,用pip是不行的,这里有安装方法

https://stackoverflow.com/questions/36886711/keras-runtimeerror-failed-to-import-pydot-after-installing-graphviz-and-pyd

 

如果用anaconda,最好还是用conda装,实测pip并没有解决问题

conda install graphviz

这俩区别我没明白,目前都能用。就当是iphone和iphone plus吧。
conda install pydotplus
或者
conda install pydot

加法plot效果图

win7-64安装anaconda4.6.7+cuda9.0+cudnn7.0+tensorflow-gpu1.5.0(1.9.0)+pycharm+jupyter+tensorboard+keras_第54张图片

 

 

其他库

 

scipy与pillow

from scipy.misc import imread,imresize
 
这个经常会出问题,比如我最新的pillow默认是1.3.1,已经不兼容上边那个导入了,所以要卸载,手动安装1.2.1,pillow用默认也行(6.2.1)
 
pip install scipy==1.2.1
pip install pillow==6.1.0 

 

 
 
 
 
 
 
 

你可能感兴趣的:(深度学习,tensorflow,机器学习,tensorflow-gpu,Anaconda,win7,cuda,pycharm)