关于配置 ——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 #移除某个虚拟环境
conda install keras将默认安装cpu版本的tensorflow
若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 。。。未完待续