搭建深度学习的环境,框架用tensorflow,用显卡的gpu跑模型,项目包管理用Anaconda,Ide集成环境用pycharm
最近毕业设计结束,电脑资料太乱,重装win10,重新配置深度学习开发环境,刚刚开始看了大量的博客,发现之前要下cuda+cudnn,入坑一天,配置好几次都是import tensorflow as tf ERROR,第一行出错。直到我看到自己在anacanda安装tensorflow-gpu时,内部自己自动安装cuda和cudnn,我才发现,好像不用自己去单独下,可能那样会破坏Anaconda3的环境。
1.安装显卡驱动
我的显卡是GTX1050,去对应的厂商官网下载驱动
选择自己显卡的型号,要是不知道显卡型号,右键,此电脑-》属性
上面那个是Intel集显,下面是我电脑独显,用独立显卡进行深度学习训练
然后搜素到不同的驱动版本如下:
一般下载studio driver驱动,因为其他都是游戏驱动,此处框框里面,两个驱动只是版本不一样,选哪个下载都行
安装驱动
同意-》自定义
等待安装完成,安装路径默认吧,安装完成后,查看自己GEFORCE兼容cuda适合的版本。
图中也就是说明我GEFORCE兼容cuda10.2和10.2以下的版本才能跑(CUDA驱动版本要满足CUDA运行版本)
否则,你单独安装cuda会出现:CUDA driver version is insufficient for CUDA runtime version的情况。
2.安装Anaconda3
我安装的是Anaconda3-2018.12-Windows-x86_64
别安装太高版本的python环境,否则你每次新建环境都得写python版本,建议装3.6.X 版本,高低版本 tf 都兼容,以后环境转换方便。
装python3.6的好处
从经过测试的构建配置,可以看到,下面python3.6都可以兼容cpu跑,gpu跑都行。
Anaconda3安装过程,无脑点下一步,记住自己安装的位置就行。
3.安装pycharm2020.1.2
4.在anaconda3里面配置环境
要是嫌弃anaconda3太大,太麻烦,可以考虑装minianaconda,参考:Anaconda和Miniconda
常用指令链接:anaconda常用指令
打开
方法1:手动找适配
首先创建一个mytf的环境(指定3.6是为了后面装tensorflow-gpu兼容性强)
conda create --name mytf pythnotallow=3.6
用conda env list 查看系统中的所有环境,此处说明我系统中有两个环境,一个base一个mytf,mytf是刚刚创建的
其次进入mytf环境
activate mytf
最后在mytf环境下安装tensorflow-gpu(从前面的步骤二的经过测试的构建配置看出,指定1.14.0是为了适配前面的python3.6)
conda install tensorflow-gpu=1.14.0
以下是我具体操作过程:
框框里面已经有cuda和cudnn包了自动会调整版本,不需要自己去手动去官网再次下载cuda和cudnn配置,不得不说,anaconda包管理还是很不错的,节省开发时间。
方法2:懒人福利,不管任何适配,一行代码解决
熟悉conda命令后,重新创建一个新环境,指定tensorflow-gpu=某版本,真香!!!(步骤二都懒得考虑,管他什么和什么兼容,这个问题不存在的,哈哈哈)
在anaconda创建名为 tf1 的环境,指定tensorflow-gpu=1.14.0。
conda create --name tf1 tensorflow-gpu=1.14.0
由此看来,python,tensorflow-gpu,cudn,cudnn,vs包等一系列兼容问题都能解决了,不会遇到错误,不用自己去挖坑考虑!!!
5.pycharm使用anaconda环境
创建一个新的项目,在pycharm选择如下:
在anaconda3目录下有个envs,找到python.exe选择ok,这个目录下就是自己创建的mytf环境,anaconda3根目录下python.exe是base环境。
和之前在anaconda prompt命令行里面看到的一致。
添加一个py代码,跑一下这个程序
"""
HelloWorld example using TensorFlow.
"""
from __future__ import print_function
import datetime
import tensorflow as tf
print('Start at: ', datetime.datetime.now()) # 开始时间
hello = tf.constant('Hello, World!') # 定义一个常量
sess = tf.compat.v1.Session() # 开始执行tensorflow的会话
# 打印输出
print(sess.run(hello)) # b'Hello, World!'
print('End at: ', datetime.datetime.now()) # 结束时间
直到出现helloword,说明成功
完成了。。。
总结
打开anaconda的图形化界面
其实在anaconda prompt命令行里面指定安装tf版本等于多少,anaconda自动会给你看看包依赖,得安装什么包。
之前如果手动安装cuda和cudnn的话,这里再去anaconda配tf的安装环境,会发现anaconda可能不会在内部重新下载cuda和cudnn安装包,导致import tensorflow as tf 模块出错,有遇到问题说vs2015,2017没装,还有什么包没更新,里面某个模块的版本要降,那些都是没用anaconda包管理,自己手动安装项目的环境。其实不如交给anaconda安装的时候去检测,省得一直去网上查走弯路。anaconda真香
其实在创建anaconda新环境时,指定要tensorflow-gpu=某个版本,所有的都给你适配,哈哈,