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中os和sys模块的区别与常用方法总结
Nov 14 Python
python实现ID3决策树算法
Dec 20 Python
详解Python自建logging模块
Jan 29 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
Mar 15 Python
pandas数据筛选和csv操作的实现方法
Jul 02 Python
Django使用Channels实现WebSocket的方法
Jul 28 Python
Python字典推导式将cookie字符串转化为字典解析
Aug 10 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
Aug 13 Python
python求质数列表的例子
Nov 24 Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 Python
Python捕获异常堆栈信息的几种方法(小结)
May 18 Python
Python中Selenium模块的使用详解
Oct 09 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
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
ext实现完整的登录代码
2008/08/08 Javascript
JavaScript基础语法让人疑惑的地方小结
2012/05/23 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
JavaScript的一些小技巧分享
2021/01/06 Javascript
[03:36]2014DOTA2 TI小组赛综述 八强诞生进军钥匙球馆
2014/07/15 DOTA
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
python简单实现基数排序算法
2015/05/16 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
python中可以声明变量类型吗
2020/06/18 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
自我鉴定书
2014/03/24 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
计算机实训报告总结
2014/11/05 职场文书
观看建国大业观后感
2015/06/01 职场文书