如何在Windows上安装TensorFlow?

50

我开始使用TensorFlow深度学习库进行工作, https://www.tensorflow.org/

我发现了一个详细的在Linux和Mac上操作TensorFlow的指南,但是我没有找到如何在Windows下使用它的方法。我在网上寻找,但是信息缺乏。

我使用Visual Studio 2015进行我的项目,并尝试使用Visual studio编译器VC14编译库。

如何安装并在Windows下使用它?

我可以在生产环境中使用 Bazel for Windows 吗?

11个回答

71
如何在Windows下安装TensorFlow并使用?
更新于8/4/16

现在,Windows 10拥有一个Ubuntu Bash环境,也称为Bash on Ubuntu on Windows,作为标准选项提供(与面向开发人员的Insider Preview更新相对)。 (StackOverflow标签wsl)此选项随Windows 10周年更新(版本1607)一起发布于2016年8月2日。这允许使用apt-get安装软件包,例如PythonTensorFlow

注意:Bash on Ubuntu on Windows无法访问GPU,因此所有安装TensorFlow的GPU选项都无法使用。

过时的安装说明对于在Windows上安装Bash on Ubuntu来说基本是正确的,但只有以下步骤是必要的:
前提条件
启用 Windows 子系统功能(GUI)
按提示重新启动
运行 Bash on Windows
不再需要的步骤:
打开开发人员模式
启用 Windows 子系统功能 (命令行)
然后使用 apt-get 安装 TensorFlow。
sudo apt-get install python3-pip python3-dev
sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp34-cp34m-linux_x86_64.whl 

现在测试 TensorFlow

$ python3
...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42
>>> exit()

并运行一个实际的神经网络

python3 -m tensorflow.models.image.mnist.convolutional

之前的回答

了解了Windows上Bash的开发者预览之后。

请参考Scott Hanselman的在Windows上使用TensorFlow,该文章使用了Windows 10上的Bash

原始回答

Bazel是问题所在

TensorFlow并非使用像make这样的构建自动化工具构建,而是使用Google内部的构建工具Bazel。Bazel仅适用于基于Unix(如LinuxOS X)的系统。

由于当前已知发布的构建TensorFlow的方法使用Bazel,而Bazel不支持Windows系统,因此无法在Windows上本地安装或运行TensorFlow。

来自Bazel FAQ

Windows怎么办?

由于其UNIX遗产,将Bazel移植到Windows是一项重要的工作。例如,Bazel广泛使用符号链接,在Windows版本中支持程度不同。

我们目前正在积极改善Windows支持,但它仍然远未可用。

状态

请参见:TensorFlow问题#17
请参见:Bazel问题#276

解决方案

这些解决方案按复杂性和所需工作的顺序列出;从大约一个小时到可能根本无法工作。

  1. Docker
    ~ 1小时

Docker安装

Docker 是一个系统,用于构建在您的计算机上运行的 Linux 操作系统的自包含版本。通过 Docker 安装和运行 TensorFlow 时,它会完全隔离安装程序与计算机上预先存在的软件包。
另请参阅TensorFlow - 使用哪个 Docker 镜像? 2. OS X
~1 小时
如果您使用当前运行 OS X 的 Mac,请查看:Mac OS X 安装 3. Linux 推荐的 Linux 系统往往是 Ubuntu 14.04 LTS下载页面)。

a. 虚拟机 - 硬件虚拟化 - 全虚拟化
~ 3 小时

下载并安装虚拟机,如商业版 VMware 或免费版 Virtual Box,之后您可以安装 Linux 并安装 TensorFlow。

当您要安装 TensorFlow 时,将使用 Pip - Python 的包管理系统。Visual Studio 用户应该考虑 NuGet。这些软件包被称为 wheels

请参阅:Pip 安装

如果您需要从源代码构建,则请参见:从源代码安装
~ 4小时
注意:如果您计划使用虚拟机并且以前从未使用过虚拟机,请考虑改用Docker选项,因为Docker是打包了虚拟机、操作系统和TensorFlow的一体化解决方案。
b. 双重启动
~ 3小时
如果您想在与Windows相同的机器上运行TensorFlow并使用GPU版本,则最有可能必须使用此选项,因为在托管的虚拟机(第二类hypervisor)上运行将不允许您访问GPU。
4. 远程机器
~ 4小时
如果您有远程访问另一台计算机的权限,并且可以在该计算机上安装Linux操作系统和TensorFlow软件并允许远程连接,则可以使用Windows计算机将远程计算机呈现为在Windows上运行的应用程序。
  1. 云服务
    我没有相关经验。如果您知道,请编辑回答。

服务如AWS正在被使用。

来自TensorFlow特性

想要将模型作为云服务运行吗? 使用Docker进行容器化,TensorFlow就能工作了。

来自Docker

在AWS上运行Docker提供了一种高度可靠、低成本的方式, 快速构建、交付和运行大规模分布式应用程序。使用AWS Marketplace中的AMI部署Docker。

  1. 等待 Bazel 在 Windows 上可用。

目前看来唯一的问题是 Bazel,但是 Bazel 的路线图 列出了今年应该可以在 Windows 上使用。

Windows 上列出了两个功能:

2016‑02  Bazel can bootstrap itself on Windows without requiring admin privileges.  

2016‑12  Full Windows support for Android: Android feature set is identical for Windows and Linux/OS X.
  1. 手动构建TensorFlow。
    根据您的技能水平,可能需要几天或更长时间。我放弃了这个项目;子项目太多,需要定位的文件也太多了。

请记住,Bazel仅用于构建TensorFlow。如果您获得了Bazel运行的命令、正确的源代码和库,您应该能够在Windows上构建TensorFlow。参见:如何获取由Bazel执行的命令

虽然我没有进一步研究过这个问题,但您可以查看持续集成信息,了解所需的文件以及如何构建它们进行测试。(自述文件)(网站

  1. 在Windows上构建Bazel
    根据您的技能水平,可能需要几天或更长时间。我也放弃了这个项目;找不到Windows所需的必要源文件。

Bazel有一个公共实验性源代码版本,可以在Windows上运行。您可以利用这个来让Bazel在Windows上工作等。

此外,这些解决方案需要使用CygwinMinGW,这增加了另一层复杂性。

  1. 使用替代构建系统,例如Make
    如果您能让它工作,我想在GitHub上看到它。

目前TensorFlow还没有这个功能,这是一个功能请求。

参见:TensorFlow issue 380

  1. 交叉构建
    如果您能让它工作,我想在GitHub上看到它。
您可以使用Bazel在Linux上构建TensorFlow,但需要更改构建过程以输出可在Windows上安装的wheel。这将需要详细了解Bazel以更改配置,并定位适用于Windows的源代码和库。我只建议作为最后的选择。甚至可能不可能实现。
11. 在新的Windows子系统上运行Linux。
请参见:Windows子系统概述 通过阅读引用的文章,您将了解与我一样多的信息。
“我可以在生产环境中使用Bazel for Windows吗?”
由于它是实验性软件,我不会在生产机器上使用它。
请记住,您只需要Bazel来构建TensorFlow。因此,在非生产机器上使用实验性代码构建wheel,然后在生产机器上安装wheel。请参见:Pip安装 TLDR;

目前我有几个学习版本。大多数使用VMWare 7.1 Workstation来托管Ubuntu 14.04 LTS或Ubuntu 15或Debian。我还在我的Windows机器上有一个双启动的Ubuntu 14.04 LTS,以访问GPU,因为带有VMware的机器没有正确的GPU。我建议您至少给这些机器8G内存,可以是RAM或RAM和交换空间,因为我有几次内存不足的情况。


1
不错的选择,这是我没有列出来的一个选项。有些人也在使用云服务,比如AWS - Guy Coder
1
我之所以在这个答案中提供了这么多细节,是因为你给了我一个借口这样做,并且应该放在一个地方并公开。StackOverflow的问答获得了很高的谷歌排名。 - Guy Coder
1
我还没有尝试过DMTK,因为我正在从基础开始自学。为了学习基础知识,我目前正在将神经网络与深度学习翻译成F#,这也帮助我学习Python并理解numpy包,同时观看Andrew Ng的视频 - Guy Coder
1
你觉得这个功能与TensorFlow相比怎么样?我会押注于Memristor。一旦这些设备变得主流并被证明可以与神经网络协同工作,我们将告别CPU/GPU神经网络解决方案。深度学习的概念显然会传承下来,甚至可能包括像TensorBoard这样的工具,但我认为其余的发展趋势会像渡渡鸟一样逐渐消失。 - Guy Coder
应该只需运行命令 pip3 install --upgrade tensorflow 即可。 - m02ph3u5
显示剩余9条评论

17
我可以证实它在Windows子系统中可行!而且也非常简单。
在Windows 10的Ubuntu Bash中,先更新软件包索引:
apt-get update

然后安装 Python 2 的 pip:

sudo apt-get install python-pip python-dev

安装tensorflow:

sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl

软件包已经安装完毕,您可以在MNIST数据集上运行CNN示例:

cd /usr/local/lib/python2.7/dist-packages/tensorflow/models/image/mnist

python convolutional.py

目前我只测试了CPU包。

我发布了博客相关内容:http://blog.mosthege.net/2016/05/11/running-tensorflow-with-native-linux-binaries-in-the-windows-subsystem-for-linux/

谢谢

~Michael


当输入“cd /usr/local/lib/python2.7/dist-packages/tensorflow/models/image/mnist”时,控制台会显示“没有这个文件或目录”,但我可以手动逐层进入该地址。不知道你是否也遇到了这个问题。 - Skywalker326

8
抱歉打扰,但这个问题很受欢迎,现在已经有了一个不同的答案。 谷歌正式宣布为TensorFlow增加Windows(7、10和Server 2016)支持: developers.googleblog.com 可以使用一个命令使用pip安装Python模块。
C:\> pip install tensorflow

如果您需要GPU支持:

 C:\> pip install tensorflow-gpu

TensorFlow手册-如何在Windows上安装pip

发布说明中还包含其他有用的信息: https://github.com/tensorflow/tensorflow/releases

更新:正如评论中@m02ph3u5所提到的,TF适用于Windows仅支持Python 3.5.x 使用本地pip在Windows上安装TensorFlow


你应该提到目前官方的Windows版本仅支持Python 3.5。 - m02ph3u5

6

安装TensorFlow

目前TensorFlow仅支持Python 3.5 64位。CPU和GPU都受支持。以下是一些安装说明,假定您没有安装Python 3.5 64位:

  1. 下载并安装Microsoft Visual C++ 2015 Redistributable Update 3: https://www.microsoft.com/en-us/download/details.aspx?id=53587 (Python 3.5和TensorFlow所需)
  2. 下载并安装Python 3.5 64位:https://www.python.org/ftp/python/3.5.2/python-3.5.2-amd64.exe
  3. 安装pip,请按如下步骤进行:下载https://bootstrap.pypa.io/get-pip.py,然后运行python get-pip.py
  4. 使用pip install tensorflow(CPU版本)或pip install tensorflow-gpu(GPU版本-->需要安装CUDA)来安装TensorFlow。

测试TensorFlow

现在,您可以运行以下内容来测试TensorFlow是否正常工作:

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
a = tf.constant(10)
b = tf.constant(32)
print(sess.run(a + b))

TensorFlow自带几个模型,位于C:\Python35\Lib\site-packages\tensorflow\models\(假设您将python安装在C:\Python35中)。例如,您可以在控制台中运行:

python -m tensorflow.models.image.mnist.convolutional

或者

python C:\Python35\Lib\site-packages\tensorflow\models\image\mnist\convolutional.py

TensorFlow在Windows上的限制

TensorFlow在Microsoft Windows上的构建支持最初出现于2016年10月5日的提交 2098b9abcf20d2c9694055bbfd6997bc00b73578

此Pull Request包含使用CMake在Windows上构建TensorFlow(仅CPU)支持的初始版本。 它包括了在Windows上使用CMake进行构建的文档,实现在Windows上核心函数的平台特定代码以及用于构建C ++示例训练器程序和PIP软件包(仅限Python 3.5)的CMake规则。 CMake规则支持使用Visual Studio 2015构建TensorFlow。

Windows支持正在进行中,我们欢迎您的反馈和贡献。

有关当前支持的功能的详细信息和在Windows上构建TensorFlow的说明,请参阅文件tensorflow/contrib/cmake/README.md

Microsoft Windows支持是在TensorFlow 0.12 RC0版本中引入的(发行说明):

TensorFlow现在在Microsoft Windows上构建和运行(在Windows 10、Windows 7和Windows Server 2016上测试)。支持的语言包括Python(通过pip软件包)和C ++。GPU加速支持CUDA 8.0和cuDNN 5.1。已知限制包括:目前不可能加载自定义op库。不支持GCS和HDFS文件系统。以下操作当前未实现:DepthwiseConv2dNative,DepthwiseConv2dNativeBackpropFilter,DepthwiseConv2dNativeBackpropInput,Dequantize,Digamma,Erf,Erfc,Igamma,Igammac,Lgamma,Polygamma,QuantizeAndDequantize,QuantizedAvgPool,QuantizedBatchNomWithGlobalNormalization,QuantizedBiasAdd,QuantizedConcat,QuantizedConv2D,QuantizedMatmul,QuantizedMaxPool,QuantizeDownAndShrinkRange,QuantizedRelu,QuantizedRelu6,QuantizedReshape,QuantizeV2,RequantizationRange和Requantize。


5

现在Tensorflow已经正式支持Windows系统,您可以使用Python 3.5的pip命令进行安装,无需自行编译

CPU版本

pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-0.12.0-cp35-cp35m-win_amd64.whl

cp35 表示 Python 3.5 版本的 wheel 包,0.12.0 是版本号,您可以根据自己的喜好进行编辑。如果想要安装最新的 CPU 版本,可以使用:

pip install --upgrade tensorflow

GPU版本

pip install --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-0.12.0-cp35-cp35m-win_amd64.whl

cp35 表示 Python 3.5 的 wheel,0.12.0 表示版本号。你可以根据自己的喜好进行编辑,或者使用最新的 GPU 版本进行安装。

pip install --upgrade tensorflow-gpu

了解更多信息


pip3 install --upgrade tensorflow 可以用于 tf 1.1+。 - m02ph3u5

3

以下可能适合您:安装Virtual Box,创建Linux虚拟机并在其中安装Linux。我建议使用Ubuntu,因为Google经常在内部使用它。然后,在Linux虚拟机中安装TensorFlow。


是的,这是直接解决方案,感谢,+1。 - ProEns08

2
我成功地在Win8.1上安装了TensorFlow,而没有使用Docker。我参考了https://discussions.udacity.com/t/windows-tensorflow-and-visual-studio-2015/45636中的建议。在此之前,我尝试过很多方法,但不会再尝试第二次安装了。以下是我所做的: - 安装VS2015(确保安装了Visual C++) - 安装Python Tools for VS2015 - 安装Anaconda2中的Python2.7 - 为Python安装pip和conda - 在VS2015内使用pip安装numpy - 在VS2015内使用pip安装tensorflow
我没有成功地在Python3.5上安装。
我也成功地通过Cloud9在Win8.1上安装了TensorFlow。这里有一个Youtube视频教程: https://www.youtube.com/watch?v=kMtrOIPLpR0 编辑:实际上,在上面提到的安装方式(除了Cloud9)中,我遇到了问题:TensorFlow看起来已经安装成功了(当我在Solution Explorer中点击Python 64-bit 2.7时,可以在已安装模块列表中看到它),但如果我在脚本或Python Interactive中输入import tensorflow as TF,就会收到错误消息。
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Fagui\Anaconda2\lib\site-packages\tensorflow\__init__.py", line 23, in <module>
    from tensorflow.python import *
  File "C:\Users\Fagui\Anaconda2\lib\site-packages\tensorflow\python\__init__.py", line 50, in <module>
    from tensorflow.python.framework.framework_lib import *
  File "C:\Users\Fagui\Anaconda2\lib\site-packages\tensorflow\python\framework\framework_lib.py", line 62, in <module>
    from tensorflow.python.framework.ops import Graph
  File "C:\Users\Fagui\Anaconda2\lib\site-packages\tensorflow\python\framework\ops.py", line 40, in <module>
    from tensorflow.python.framework import versions
  File "C:\Users\Fagui\Anaconda2\lib\site-packages\tensorflow\python\framework\versions.py", line 24, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "C:\Users\Fagui\Anaconda2\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 28, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "C:\Users\Fagui\Anaconda2\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 20, in swig_import_helper
    import _pywrap_tensorflow

enter image description here


1
非常有用且快速的解决方案,谢谢,点赞。 - ProEns08

2
目前你不能这样做。问题在于tensorflow使用bazel构建,bazel是另一个已被公开开源的Google内部工具,只支持Mac和Unix系统。 在bazel移植到Windows或者其他构建系统被添加到tensorflow之前,在Windows上本地运行tensorflow的机会很小。
也就是说,你可以安装virtualbox,然后安装docker-machine,在其中运行一个包含tensorflow的Linux容器。

我能否手动将Bazel构建工具移植到Windows?感谢您的有益建议,点赞。 - ProEns08
我可以在生产环境中使用 bazel fo WIndows 吗? - ProEns08
1
@ProEns08 Github页面明确警告不要将此用于严肃目的。 - erip
是的,它看起来像标准警告。就像GPL或BSD许可证警告一样。但是,有人尝试过严肃地使用它吗? - ProEns08

2
在撰写本答案时,我无法成功安装tensorflow和python 3.5.2。回到python 3.5.0版本就可以了。
然后,我成功地使用以下命令进行安装:

C:> pip install tensorflow


2

如果你已经在Windows上安装了Anaconda,我发现有一种更简单的方法:

conda create --name snakes python=3

那么

activate snakes

那么

pip install tensorflow

这类似于virtualenv,我发现这很有用。


应该明确使用 conda create --name snakes python=3.5 命令,因为只支持 3.5 版本。 - m02ph3u5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接