利用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 。。。未完待续

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容