在Windows 10上安装TensorFlow并支持GPU的最佳方式(无需安装CUDA)

找了很久才找到这个方法,亲测可用,之前装完cuda和安装cudnn后还是报错 根据文章做的成功搞定,我这里把步骤简单

下载安装anaconda

下载网址:https://www.anaconda.com/download/

下载指定得exe文件后运行:

安装程序现在应该正在运行。

  • 您将被要求接受许可协议......
  • “选择安装类型”我建议您选择“Just Me”,因为这是您个人开发环境的一部分。
  • “选择安装位置”我建议您保留默认位置,即位于您用户目录的顶层。
  • “高级安装选项”

 

检查您的安装

如果你仍然Powershell打开,你将需要关闭它并重新启动它,以便它将重新读取你的环境变量并选择PATH现在包含Anaconda Python目录的变量。随着Powershell重开,你可以检查你现在有Python 3中作为默认的Python

python --version

Python 3.6.5 :: Anaconda custom (64-bit)

更新您的基本Anaconda套餐

conda是Anaconda的强大的包和环境管理工具。我们将使用Powershell来更新我们的基础Python安装。运行以下命令。这可能需要一些时间,因为有很多模块需要更新。

conda update conda
conda update anaconda
conda update python
conda update --all

这应该让你的整个基地Anaconda安装到最新的包。

 

使用TensorFlow创建Python“虚拟环境” 

您应该为您的基本Anaconda Python环境设置TensorFlow环境。这样可以保持基础清洁,并为TensorFlow提供所有依赖项的空间。一般来说,良好的做法是为项目保留单独的环境,尤其是当它们具有特殊的包依赖性时。将其视为项目的单独“名称空间”。

在使用conda创建环境时,有许多可能的选项,包括添加具有特定版本号和特定Python基本版本的包。如果您想要精细控制,这有时很有用,它还有助于解决版本依赖性问题。在这里,我们将保持简单,只需创建一个命名环境,然后激活该环境并在其中安装我们想要的包。

从命令行做,

conda create --name tf-gpu

我将环境命名为'tf-gpu',但您可以使用任何您想要的名称。

“激活”环境

现在激活环境,(我将显示我的完整终端提示和输出,而不仅仅是命令)

注意:由于某种原因,Powershell不会运行“激活”脚本!您需要启动“CMD”shell才能执行此操作。你可以从Powershell启动CMD shell(注意Powershell提示符开头的“PS”是如何消失的)。必须切换到CMD是一个烦恼,但您可以在Powershell窗口中轻松来回切换

PS C:\Users\don> cmd
Microsoft Windows [Version 10.0.16299.461]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\don> activate tf-gpu

(tf-gpu) C:\Users\don>

您可以看到我的CMD shell提示符前面是环境名称(tf-gpu)。任何conda软件包(或pip)安装现在都是本环境的本地软件包。

从Anaconda Cloud Repositories安装TensorFlow-GPU

我喜欢安装“官方”Anaconda维护的TensorFlow-GPU软件包,就像我为Ubuntu 18.04做的那样,不幸的是Anaconda维护Windows版本的TensorFlow已经过时了(版本1.1)。Windows目前只支持CPU版本1.8,但我们需要GPU加速。

在Anaconda Cloud上搜索“tensorflow”将列出Anaconda和社区提供的可用软件包。顶部附近列出了一个“aaronzs / tensorflow-gpu 1.8.0”软件包,它包含Linux和Windows版本。这是我所知道的唯一可以与Windows 10一起使用的最新软件包。这个软件包是由Aaron Sun构建的,并且得到了很好的维护。您可以查看他的项目的GitHub页面。

让我们在这个conda环境中安装带有GPU加速功能的TensorFlow。

 C:\Users\don> conda install -c aaronzs tensorflow-gpu

现在,我们可以做CUDA和cuDNN依赖,

(tf-gpu) C:\Users\don> conda install -c anaconda cudatoolkit
(tf-gpu) C:\Users\don> conda install -c anaconda cudnn

请注意,我明确使用该-c标志来指定“anaconda”“channel”。如果省略频道名称,这将是默认值,但在这种情况下,我想明确说明软件包的来源。链接是,cudatoolkit current是9.0,cudnn current是7.1.4。您应该在安装时检查版本号。

而已!您不需要在系统上安装CUDA。


检查TensorFlow是否与您的GPU配合使用

关闭已打开的任何Powershell或CMD shell并重新打开一个。您需要这样做才能读入新的PATH设置。您可以使用CMD shell激活您的tf-gpu环境启动Python并运行以下行,

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))

我的会话包括输出看起来像这样(在这个“第一次运行”会话启动期间有很长的延迟)

PS C:\Users\don> cmd
Microsoft Windows [Version 10.0.16299.461]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\don> activate tf-gpu

(tf-gpu) C:\Users\don>python
Python 3.6.5 |Anaconda custom (64-bit)| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow')
>>> sess = tf.Session()
2018-11-01 16:37:57.666250: I T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2018-11-01 16:37:57.967130: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1356] Found device 0 with properties:
name: GeForce GTX 1070 major: 6 minor: 1 memoryClockRate(GHz): 1.645
pciBusID: 0000:01:00.0
totalMemory: 8.00GiB freeMemory: 6.62GiB
2018-11-01 16:37:57.975868: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1435] Adding visible gpu devices: 0
2018-11-01 16:40:10.162112: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:923] Device interconnect StreamExecutor with strength 1 edge matrix:
2018-11-01 16:40:10.168554: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:929]      0
2018-11-01 16:40:10.171214: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:942] 0:   N
2018-11-01 16:40:10.174162: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1053] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6400 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1070, pci bus id: 0000:01:00.0, compute capability: 6.1)
>>> print(sess.run(hello))
b'Hello, TensorFlow'
>>>

是啊!PATH是正确的,一切正常。你可以看到它有GPU支持。

接下来,在我们配置Jupyter笔记本以使用我们的'tf-gpu'环境后,我们将使用Keras做一些更有用和有趣的事情。


为TensorFlow环境创建一个Jupyter Notebook内核

Y您可以使用编辑器和命令行来工作,并且您经常想这样做,但是,Jupyter笔记本非常适合于进行机器学习开发工作。为了让Jupyter笔记本按照您希望的方式处理这个新的TensorFlow环境,您需要为其添加一个“内核”。

(tf-gpu) C:\Users\don>conda install ipykernel

现在创建内核

(tf-gpu) C:\Users\don>python -m ipykernel install --user --name tf-gpu --display-name "TensorFlow-GPU"

 会得到这样得效果

 

 

 

使用具有TensorFlow后端的Keras的示例

为了检查所有内容,我们可以使用带有我们的“TensorFlow-GPU”内核的Jupyter笔记本,使用Keras(使用我们的TensorFlow后端)设置LeNet-5。我们将在MNIST数字数据集上训练模型,然后打开TensorBoard以查看作业运行的一些图。

安装Keras

用tf-gpu环境激活吧,

(tf-gpu) C:\Users\don\projects>conda install keras-gpu

您现在已经使用GPU加速的TensorFlow安装了Keras。

启动Jupyter笔记本

随着tf-gpu环境激活启动Jupyter,

(tf-gpu) C:\Users\don>jupyter notebook

从“新建”下拉菜单中选择您添加的“TensorFlow-GPU”内核(如上一节中的图像所示)。你现在可以开始编写代码了!

 

最后:

 

看看TensorBoard的工作运行情况

TensorBoard需要“漂白”,所以先安装它,

(tf-gpu) C:\Users\don>conda install bleach

 

 

 


版权声明:本文为cxy7228484原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。