TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)


Posted in Python onJune 22, 2020

记录一下安装win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5

之前已经安装过pycharm、Anaconda以及VS2013,因此,安装记录从此后开始

总体步骤大致如下:

1、确认自己电脑显卡型号是否支持CUDA(此处有坑)

TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)

此处有坑!不要管NVIDIA控制面板组件中显示的是CUDA9.2.148。

你下载的CUDA不一定需要匹配,尤其是CUDA9.2,最好使用CUDA9.0,我就在此坑摔的比较惨。

2、下载CUDA以及cuDNN,注意版本对应①查看版本匹配:

②查看TensorFlow和Keras版本:

import tensorflow as tf
from tensorflow.keras import layers
print(tf.VERSION)
print(tf.keras.__version__)

输出:

1.12.0
2.1.6-tf

7、在pycharm中调用tensorflow,

并查验tensorflow是否能够调用gpu做运算

①在PyCharm中新建Project

②进入中Existing interpreter右侧浏览目录

③在Interpreter右侧浏览目录中找到自己安装Anaconda的路径,在其中的envs文件夹中,有上文中自己创建的tensorflow-gpu环境,选中其中python.exe即可。

TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)

TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)

④在pycharm中查验tensorflow是否能够调用gpu做运算查验tensorflow是否能够调用gpu做运算:

创建一个.py文件,用TensorFlow,来比较一下CPU和GPU的时间差异:

例子来源:https://zhuanlan.zhihu.com/p/58607298

import tensorflow as tf
import timeit
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
 
# See https://www.tensorflow.org/tutorials/using_gpu#allowing_gpu_memory_growth
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
 
with tf.device('/cpu:0'):
 random_image_cpu = tf.random_normal((100, 1000, 100, 3))
 net_cpu = tf.layers.conv2d(random_image_cpu, 32, 7)
 net_cpu = tf.reduce_sum(net_cpu)
 
with tf.device('/gpu:0'):
 random_image_gpu = tf.random_normal((100, 1000, 100, 3))
 net_gpu = tf.layers.conv2d(random_image_gpu, 32, 7)
 net_gpu = tf.reduce_sum(net_gpu)
 
sess = tf.Session(config=config)
 
# Test execution once to detect errors early.
try:
 sess.run(tf.global_variables_initializer())
except tf.errors.InvalidArgumentError:
 print(
 '如果出了这个Error表示GPU配置不成功!\n\n')
 raise
 
 
def cpu():
 sess.run(net_cpu)
 
 
def gpu():
 sess.run(net_gpu)
 
 
# Runs the op several times.
print('Time (s) to convolve 32x7x7x3 filter over random 100x1000x100x3 images '
 '(batch x height x width x channel). Sum of ten runs.')
print('CPU (s):')
cpu_time = timeit.timeit('cpu()', number=10, setup="from __main__ import cpu")
print(cpu_time)
print('GPU (s):')
gpu_time = timeit.timeit('gpu()', number=10, setup="from __main__ import gpu")
print(gpu_time)
print('GPU speedup over CPU: {}x'.format(int(cpu_time / gpu_time)))
 
sess.close()

输出:

Time (s) to convolve 32x7x7x3 filter over random 100x1000x100x3 images (batch x height x width x channel). Sum of ten runs.
CPU (s):
25.24234085335886
GPU (s):
1.5711942943447745
GPU speedup over CPU: 16x

输出表明:这个任务GPU和6个i7的CPU相比快了16倍!

安装踩坑总结:

其中最大的坑就是CUDA、cuDNN、tensorflow-gpu以及python版本之间的匹配了。有时候明明按照官方的版本匹配列表安装,也是不行。

安装之后如果出现“ImportError: DLL load failed: 找不到指定的模块”错误,一般问题都是出在了版本不匹配上。

最需要注意的是CUDA9.2 。最初在NVIDIA控制面板,显示我的显卡支持CUDA 9.2.148,因此我按照推荐列表,选择tensorflow-gpu1.12.0+cuDNN 7.5.0.56+CUDA 9.2.148 +python3.5.5。注意此处有坑!!无论如何都是安装不成功,一直都是“ImportError: DLL load failed: 找不到指定的模块”这个错误。

后来看到有网友说,推荐列表中只给出CUDA版本号 的第一位,一般使用的都是CUDA9.0或者CUDA10.0,后面版本可能会出现不兼容。

于是,卸载CUDA9.2(不要管NVIDIA控制面板组件中显示的是CUDA9.2.148,不一定需要匹配),重新在推荐列表中寻找匹配的cuDNN以及tensorflow-gpu版本,最后成功安装。

总结

到此这篇关于TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)的文章就介绍到这了,更多相关TensorFlow环境配置与安装内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
详解Python编程中time模块的使用
Nov 20 Python
浅谈Python数据类型判断及列表脚本操作
Nov 04 Python
python用户管理系统
Mar 13 Python
dataframe设置两个条件取值的实例
Apr 12 Python
PyQt5 pyqt多线程操作入门
May 05 Python
python3.6使用pickle序列化class的方法
Oct 22 Python
python 将json数据提取转化为txt的方法
Oct 26 Python
Python函数返回不定数量的值方法
Jan 22 Python
Django+Xadmin构建项目的方法步骤
Mar 06 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 Python
Python celery原理及运行流程解析
Jun 13 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 #Python
python GUI模拟实现计算器
Jun 22 #Python
keras CNN卷积核可视化,热度图教程
Jun 22 #Python
python实现斗地主分牌洗牌
Jun 22 #Python
解决Keras使用GPU资源耗尽的问题
Jun 22 #Python
Keras - GPU ID 和显存占用设定步骤
Jun 22 #Python
Python 基于jwt实现认证机制流程解析
Jun 22 #Python
You might like
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
2016/10/19 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
javascript实现单击和双击并存的方法
2014/12/13 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
Python中AND、OR的一个使用小技巧
2015/02/18 Python
python实现电子产品商店
2019/02/26 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
python中wx模块的具体使用方法
2020/05/15 Python
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
this关键字的作用
2016/01/30 面试题
《泉水》教学反思
2014/04/11 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
简单的离婚协议书范本
2014/11/16 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis