利用NVIDIA显卡的深度学习环境配置(2019-09-19)

关于配置 ——nvidia gtx 960m + win7 + tensorflow + keras:

1.首先安装显卡驱动,不同cuda版本对不同驱动版本有不同要求,可以安装最新版的;

2.根据tensorflow版本来安装cuda版本,目前tensorflow 1.x 至少要求cuda 8及以上的版本;

3.cuda 9及以上版本基本要求cuDNN 7及以上的版本;

4.安装完cuda以后(可参考https://www.cnblogs.com/shiganquan/p/9496038.html),需要进行路径的配置以及功能测试:
a.在CMD窗口输入nvcc -V;
b.在将cuda默认安装在C盘后,在program data盘(一般为隐藏文件)里会有cuda samples文件,利用VS重新编译里面的.sln项目,看是否存在错误;在该步骤中要选择release模式;
c.在cmd窗口运行通过release编译后得到的deviceQuery和bandwithtest文件。

5.在下载安装完显卡驱动以及CUDA之后,安装tensorflow时最好在虚拟环境中进行,实践可行的有——

参考 配置tensorflow和keras时教程及问题总结:

a.创建虚拟环境——conda create -n your_env_name python=X.X(2.7、3.6等),可以分别创建cpu版和gpu版tensorflow的两个环境;
b.在cpu版环境中,选择python3.5版本(conda create -n tensorflow python=3.5)的;安装完成后输入activate tensorflow进入环境,安装tensorflow==1.13.1的版本(pip install tensorflow==1.13.1),测试如下代码看是否可用:

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

c.进一步安装keras(pip install keras==2.2.4),至此完成cpu环境下的配置;
d.gpu环境下的配置选用的版本搭配为:python3.6+CUDA9.0+CUDNN7.0;
e.在激活的tensorflow-GPU环境下,pip install tensorflow-gpu==1.7.0,最后验证此时的tensorflow的代码是否是在使用GPU:

import tensorflow as tf
a = tf.test.is_built_with_cuda()   #判断CUDA是否可用
b = tf.test.is_gpu_available(cuda_only=False,min_cuda_compute_capability=None)     #判断GPU是否可用
print(a)
print(b)

6.Tensorflow(CPU)与Tensorflow(GPU)不能共存,先装GPU再装CPU,也会被覆盖。最好就是删除CPU版本,只留下GPU版本;

7.使用tf过程可能会有警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA。(参考https://blog.csdn.net/feng98ren/article/details/84874326)

原因:
除了通常的算术和逻辑,现代CPU提供了许多低级指令,称为扩展,例如, SSE2,SSE4,AVX等。高级矢量扩展(AVX)是英特尔在2008年3月提出的英特尔和AMD微处理器的x86指令集体系结构的扩展,英特尔首先通过Sandy Bridge处理器在2011年第一季度推出,随后由AMD推出Bulldozer处理器在2011年第三季度。AVX提供了新功能,新指令和新编码方案。特别是,AVX引入了融合乘法累加(FMA)操作,加速了线性代数计算,即点积,矩阵乘法,卷积等。几乎所有机器学习训练都涉及大量这些操作,因此将会支持AVX和FMA的CPU(最高达300%)更快。

在此强调一下:这只限于CPU。如果你有一个GPU,你不应该关心AVX的支持,因为大多数昂贵的操作将被分派到一个GPU设备上(除非明确地设置)。在这种情况下,您可以简单地忽略此警告。

解决方法:
(1) 如果安装的是GPU版本
如果你有一个GPU,你不应该关心AVX的支持,因为大多数昂贵的操作将被分派到一个GPU设备上(除非明确地设置)。在这种情况下,您可以简单地忽略此警告:

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

(2) 如果安装的是CPU版本(pip install tensorflow)
a.在代码中加入如下代码,忽略警告:

    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

b.编译TensorFlow源码:
如果您没有GPU并且希望尽可能多地利用CPU,那么如果您的CPU支持AVX,AVX2和FMA,则应该从针对CPU优化的源构建tensorflow。在这个问题中已经讨论过这个问题,也是这个GitHub问题。 Tensorflow使用称为bazel的ad-hoc构建系统,构建它并不是那么简单,但肯定是可行的。在此之后,不仅警告消失,tensorflow性能也应该改善。

8.使用nvidia-smi命令查看gpu使用情况,首先映射到cd/d C:\Program Files\NVIDIA Corporation\NVSMI,再输入nvidia-smi。

TIPS——一些实用命令:

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

2.conda info -e #查看当前存在哪些虚拟环境

3.deactivate #关闭虚拟环境 ;conda remove -n yourenvname #移除某个虚拟环境

  1. conda install keras将默认安装cpu版本的tensorflow

  2. 若anaconda创建python环境时出现CondaHTTPError问题,可以添加一些国内源:

针对WIN7——

清华源(TUNA)

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ # 设置搜索时显示通道地址
conda config --set show_channel_urls yes

中科大源(USTC)

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes

针对WIN10——

conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes

以上的过程,实际更改的是的文件是 Windows:C:\Users\用户名.condarc。

关于配置——nvidia gtx 960m + win7 + mxnet:

pip install mxnet-cu90 。。。未完待续

你可能感兴趣的:(利用NVIDIA显卡的深度学习环境配置(2019-09-19))