Win10安装TensorFlow1.9-GPU版本
前言
前段时间更新自己电脑上的tf1.4到1.9,没想到踩了这么多坑。。。特意记录下来希望可以帮到大家
删除旧版本
如果你电脑上没有安装旧版本的tf,就可以忽略这一步。我是因为想要升级到最新版本,所以需要先卸载旧版本。旧版本是用anaconda安装的,卸载很简单,首先进入安装tf的环境,我的环境是“tensorflow”:
activate tensorflow
然后卸载TensorFlow就好,或者直接删除这个tensorflow的环境,卸载tensorflow可以使用:
(tensorflow)pip uninstall tensorflow-gpu
前提是你安装的时候使用的是pip指令。直接删除环境可以使用:
conda env remove -n tensorflow
安装CUDA
要安装CUDA需要满足下面的四个条件:
- A CUDA-capable GPU (一个可以运行CUDA的显卡)
- A supported version of Microsoft Windows(一个支持CUDA的系统)
- A supported version of Microsoft Visual Studio(一个支持CUDA的VisualStudio)
- the NVIDIA CUDA Toolkit (available at http://developer.nvidia.com/cuda-downloads) (CUDA的安装文件)
这里需要注意的是,安装tensorflow-gpu1.9必须严格安装CUDA9.0,任何9.X都不可以,比如CUDA9.2什么的都不行,因为tensorflow会去寻找xxxx90.dll,如果是CUDA9.2之类的,这些dll的名称是xxxx92.dll,会报出找不到的错误。
还有一点需要注意,如果你的电脑上没有VS,那么你需要先去安装,请先自行下载安装VS2015,或者在我给出的链接中下载:
VS的安装需要一定的时间,请耐心等待。
如果你觉得前三个条件满足,那么就可以下载CUDA9.0了,下载地址是CUDA9.0,选择如下图所示,然后下载:
下载完成后,双击安装。这里又有一个坑,我的显卡是GTX 750M,直接选择“精简”模式的安装会报错导致不能安装,报错的原因是Visual Studio Intergration不能正确安装导致的失败。
你可以选择直接精简安装试试运气,也可以跟着我下面的教程选择“自定义”安装,下面介绍如何自定义安装:
- 在刚刚双击安装文件后,会让你找一个解压临时文件的路径,保存下这个路径:
- 抽取完成先进入这个路径,把里面的CUDAVisualStudioIntegration文件夹拷贝到其他地方保存,然后继续安装
- 选择自定义安装,点击下一步
- 除了Visual Studio Intergration其他的都打对勾,如下图所示:
-
完成后,我们需要手动安装之前没有安装的Visual Studio Intergration,进入以下路径:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations
-
将我们之前保存的那个CUDAVisualStudioIntegration文件夹中的\extras\visualstudiointegration\MSBuildExtensions下面的所有文件拷贝到上面的那个路径中去即可。
-
完成后,进入这个路径中,其中ProgramData是隐藏文件夹,看不到的话就去文件夹选项里勾选查看隐藏文件
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0\5_Simulations\nbody
-
因为之前安装的是VS2015,所以选择15的sln
- 接下来会打开VS2015,如果你的电脑上缺某些组件,这个时候VS会自动提醒你需要补充安装,安装即可。安装完成后在屏幕上方调成debug和x64
- 右击右侧的“解决方案”,选择生成解决方案进行编译
-
成功后进入路径
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0\bin\win64\Debug
-
双击运行刚刚编译得到的“nbody.exe”,得到下图所示表示安装成功CUDA
- PS:没意外的话不需要设置环境变量,安装的时候自动设置好了
安装cuDnn
cuDnn也请严格按照tf官网上的要求下载7.0版本的,不要下载7.X的,下载地址cuDnn
然后解压缩得到3个文件夹,将这3个文件夹里面的文件复制到CUDA安装路径下相应的文件夹里面即可。CUDA默认安装路径为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0,具体来说:
- 复制 \cuda\bin\cudnn64_7.dll 到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin.
- 复制 \cuda\ include\cudnn.h 到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include.
- 复制 \cuda\lib\x64\cudnn.lib 到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64.
安装tensorflow-gpu
相比于之前繁琐的步骤,这里反而是最简单了的。请安装Anaconda,Anaconda实质上是一个Python包和版本管理工具。首先去官网下载Anaconda,然后安装,注意在某一个选项中勾选将anaconda加入到PATH中去(虽然anaconda不建议这么做,但是方便啊!),其他的全部选择默认选项即可,最多改一改安装路径,其他按照默认选项安装。
1、 用anaconda创建一个虚拟环境
C:> conda create -n tensorflow python=3.6
2、
在 Anaconda 中,您可以使用 conda 来创建一个虚拟环境。但是,在 Anaconda 内部,我们建议使用 pip install 命令来安装 TensorFlow,而不要使用 conda install 命令。
根据tf官方文件的建议,我们使用pip指令安装,但是同时,我们不要执行tf官方文档中的安装指令,因为那样安装太慢了,我们这里用豆瓣镜像去安装最新版本的tensorflow,瞬间就能安装好
(tensorflow)C:> pip install --index-url https://pypi.douban.com/simple tensorflow-gpu
3、 测试
这里使用PyCharm这个IDE来进行测试。首先创建一个空的Python工程,然后在setting中设置Python解释器为Python3.5的那个,然后创建一个空的Python文件,文件编入如下代码:
import tensorflow as tf
hello = tf.constant("Hello!TensorFlow")
sess = tf.Session()
print(sess.run(hello))
如果输出如下的话,就是成功安装了tensorflow了:
结语
至此就成功安装完毕啦,真的是坑好多。。。希望可以帮到你,如果出现其他意外,欢迎来信讨论解决
原文链接:https://antdlx.com/win10_tf19/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
8月13日云栖精选夜读 | 阿里云首次发布数字化转型方法论,推动各行各业数字化转型
数字经济大潮来临 如何利用数字技术支持智能化转型? 曾经 阿里巴巴也经历过 数据信息孤立 资源浪费创新复用率低 传统IT架构无法满足高并发的互联网诉求 为了应对挑战,阿里巴巴也进行了诸多创新。其中就包括在2009年成立阿里云并自主研发大规模计算操作系统飞天。 热点热议 阿里云首次发布数字化转型方法论,推动各行各业数字化转型 作者: 阿里云头条 发表在:云栖学习小组 MIT正式发布编程语言Julia 1.0:Python、R、C++三合一 作者: 技术小能手 发表在: 数据与算法之美 马斯克打响“退市”第一枪:AI芯片半年上市,完全自动驾驶也要来! 作者: 技术小能手 发表在:新智元 知识整理 Linux的基本操作 作者:奈良佳晴子 轻松搞定RocketMQ入门 作者: 调皮仔3683 Java Optional空指针处理 作者: 溜达向日葵 Pandas/networkx图分析简单入门 作者: 【方向】 发表在:翻译小组 使用 Python 30分钟 教你快速搭建一个博客 作者: 技术小能手 发表在: Python中文社区 美文回顾 MySQL插件调用 作者: 重庆八怪 Flutt...
- 下一篇
Java并发面试题精选
1,什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。 2,线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。每个线程都拥有单独的栈内存用来存储本地数据。 3,如何在Java中实现线程? 两种方式:java.lang.Thread 类的实例就是一个线程但是它需要调用java.lang.Runnable接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承java.lang.Thread 类或者直接调用Runnable接口来重写run()方法实现线程。 4,Java 关键字volatile 与 synchronized 作用与区别? 1,volatile 它所修饰的变量不保留拷贝,直接访问主内存中的。 在Java内存模型中,有main memory,每个线程也有自...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长