通过本教程,你将学会在 Windows 10 下简单搭建 Anaconda 3 + Python 3.6 + TensorFlow 1.8 + CUDA 9.0 + cuDNN 7.1 + MinGW + Keras 2.1 + Spyder or Jupyter 的机器学习环境
由于最近要完成一个关于机器学习的项目,经过好几次折腾,终于总结出了一个较为完整的在 Windows 下的安装教程:
预告:最近尝试使用 Windows 下的 Linux 子系统来搭建机器学习环境。
目前,经测试在 Windows 10 Pro 1803 x64 的系统中成功运行如下机器学习环境:
- Windows 10(首先你要有一台运行 Windows 10 最新版本的电脑)
- CUDA 9.0(不要问为什么不用最新版本的,TensorFlow 会对9.1报错的)
- cuDNN 7.1(这个可以是最新版不过要对应相应的 CUDA 版本)
- MinGW(GCC编译器套件,避免报错 gpu sync failed)
- Anaconda 3(建议去官网上下载,后附下载链接)
- Spyder(可以使用其他的编译器,不过建议之前用过 MATLAB 优先使用)
- Jupyter(另一款比较热门的编译器,UI 界面较为好看)
- TensorFlow 1.8(还记得我们这次的主角是什么嘛,P.S. 官网上的中文页面竟然没有改版本号)
- Keras 2.1(基于 TensorFlow 后端支持)
随后,这里会附上所有安装文件的百度网盘地址 (密码: 1knp),安装文件内容不断更新中。。。关于使用conda install
指令下载过慢的问题(校园网可以通过使用ipv6解决),待我进一步研究后,给出相应的解决方案!
一、安装 CUDA® 工具包 9.0 和 cuDNN v7.1
根据官方文档介绍,TensorFlow 有以下两种版本:
仅支持 CPU 的 TensorFlow。如果您的系统没有 NVIDIA® GPU,就必须安装此版本。请注意,此版本的 TensorFlow 通常更容易安装(用时通常在 5 或 10 分钟内),所以即使您拥有 NVIDIA GPU,我们也建议先安装此版本。预先构建的二进制文件将使用 AVX 指令。
支持 GPU 的 TensorFlow。TensorFlow 程序在 GPU 上的运行速度通常要比在 CPU 上快得多。因此,如果您的系统配有满足以下所示先决条件的 NVIDIA® GPU,并且您需要运行性能至关重要的应用,则最终应安装此版本。
由此需要先确认自由拥有一台 NVIDIA® 的显卡,并且算力在3.0或更高,如需了解支持的 GPU 卡的列表,请参阅 NVIDIA 文档。如果满足上述要求,并需要安装支持 GPU 的 TensorFlow,那么需要按照本节内容进行安装。
1.1 下载 CUDA® 工具包 9.0 和 cuDNN v7.1
- 前往 CUDA® 工具包 9.0 官网 并按照下图选择在线 (network) 或者离线 (local) 安装包进行下载。
- 前往 cuDNN v7.1 官网 并根据提示注册会员并完成下载。
- 至此关于 NVIDIA® GPU 所需要的所有安装文件已经准备就绪:
1.2 安装 CUDA® 工具包 9.0 和 cuDNN v7.1
运行
cuda_9.0.176_win10.exe
,并按照提示安装,在这里需要注意:并不需要安装完整的VS平台,仅需要cpp编译器即可(随后会说明如何安装GCC编译器套件)安装过程中屏幕会有闪烁,为正常现象,不要慌张!!
可以选择安装升级补丁,笔者没有装,目前还蛮好的,也不知道装了以后会不会出事!
CUDA® 工具包 9.0 安装完成后,转到安装目录
%ProgramFiles%\NVIDIA GPU Computing Toolkit\CUDA\v9.0
,将cudnn-9.0-windows10-x64-v7.1.zip
中的文件按照文件结构解压到该目录下,并于相应文件夹进行合并。
1.3 测试安装结果
在命令提示符(运行中输入cmd
或在PowerShell
中输入cmd
,下同)中输入(大写的!大写的!大写的!):
nvcc -V
如果有如下提示安装信息,就说明大致是安装成功了。
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:32_Central_Daylight_Time_2017
Cuda compilation tools, release 9.0, V9.0.176
二、安装 MinGW GCC 编译器套件
如果是首次在 Windows 10 下搭建 TensorFlow 机器学习环境,并且电脑中之前没有安装过 VS 套件,那么在此强力建议安装此编译器套件。
在使用 Keras 时运行出现报错gpu sync failed
。这个问题多半是因为缺少相应的cpp
编译器导致的。
2.1 下载 MinGW
前往 MinGW 官网 下载最新版本的 MinGW GCC 编译器套件,下载按钮在右上角Download Installer
(貌似需要在线安装,好吧就是在线安装)!
2.2 安装 MinGW
万事始于 Double Click 。双击安装文件mingw-get-setup.exe
按照提示完成安装即可!
至此 CUDA® 工具包 9.0 及其相应编译环境已经安装就绪了!同学,不妨跑个样例试试!
三、安装 Anaconda 3 集成 Python 3.6 环境
3.1 下载 Anaconda 3
前往 Anaconda 3 官网 下载最新版本的 Anaconda 3 集成环境。
2.2 安装 Anaconda 3
运行安装软件Anaconda3-5.1.0-Windows-x86_64.exe
,按照默认提示进行安装。
3.3 测试安装结果
- 安装完成后在开始菜单下找到如下两个程序 Anaconda Navigator(集成环境导航软件)和 Anaconda Prompt(控制台)
- 打开 Anaconda 3 控制台(Anaconda Prompt,下同)输入
python
显示相应版本的提示信息则表示安装成功。
(base) C:\Users\user>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.
>>>
四、安装 TensorFlow
4.1 按照以下步骤在 Anaconda 环境中安装 TensorFlow
- 调用以下命令创建名为 TensorFlow 的 Conda 环境(或者可以创建一个自己喜欢的环境名称,将
tensorflow
字段改为keras
myspace
等等,后文也需要输入相应的环境名称!):
conda create -n tensorflow pip python
- 调用以下命令以激活 Conda 中搭建的 TensorFlow 环境(调用
deactivate
命令以退出当前环境)
activate tensorflow
- 调用以下命令更新该环境下的所有库(避免随后出现各种问题),直到出现下方提示(安装时长取决于当地网络状况):
conda upgrade --all
(base) C:\Users\user>conda upgrade --all
Solving environment: done
# All requested packages already installed.
- 调用以下命令以在 conda 环境中安装 TensorFlow。要安装仅支持 CPU 的 TensorFlow 版本,请输入以下命令:
pip install --ignore-installed --upgrade tensorflow
- 要安装 GPU 版本的 TensorFlow,请输入以下命令(在同一行):
pip install --ignore-installed --upgrade tensorflow-gpu
4.2 验证 Anaconda 环境下 TensorFlow 的安装
启动 Anaconda 控制台。
输入以下命令以激活 Conda 中自建的 TensorFlow 环境:
activate tensorflow
- 输入以下命令调用 Python:
python
- 在 Python 交互式 shell 中输入以下几行简短的程序代码:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
- 如果系统输出以下内容之一,就说明您可以开始编写 TensorFlow 程序了:
Hello, TensorFlow!
b'Hello, TensorFlow!'
4.3 常见的安装问题(官方文档)
我们借助 Stack Overflow 来记录 TensorFlow 安装问题及其补救措施。下表包含了 Stack Overflow 上一些常见安装问题解答的链接。如果您遇到了下表中未列出的错误消息或其他安装问题,请在 Stack Overflow 上进行搜索。如果 Stack Overflow 中没有显示相关错误消息,请在 Stack Overflow 上提一个新的问题,并指定 tensorflow 标签。
错误代码 | Stack Overflow 链接错误消息 |
---|---|
41007279 | [...\stream_executor\dso_loader.cc] Couldn't open CUDA library nvcuda.dll |
41007279 | [...\stream_executor\cuda\cuda_dnn.cc] Unable to load cuDNN DSO |
42006320 | ImportError: Traceback (most recent call last):File "...\tensorflow\core\framework\graph_pb2.py", line 6, infrom google.protobuf import descriptor as _descriptor ImportError: cannot import name 'descriptor' |
42011070 | No module named "pywrap_tensorflow" |
42217532 | OpKernel ('op: "BestSplits" device_type: "CPU"') for unknown op: BestSplits |
43134753 | The TensorFlow library wasn't compiled to use SSE instructions |
38896424 | Could not find a version that satisfies the requirement tensorflow |
五、安装 Spyder IDE
想必用过 MATLAB 的人对于 Spyder IDE 第一感觉就是:哇塞!好熟悉啊!下图就是该编译环境的整体界面:
5.1 在 Anaconda 中自建的环境下安装 Spyder:
- 启动 Anaconda 控制台。
- 输入以下命令以激活 Conda 中自建的 TensorFlow 环境:
activate tensorflow
- 输入以下命令安装 Spyder 以及相关的依赖包,在弹出提示语句后输入
y
按回车等待安装完成:
conda install spyder
5.2 检测安装是否成功
- 在上述环境下输入
spyder
;或者在安装成功后,在开始菜单的Anaconda3 (64bit)
文件夹下会出现名为Spyder (tensorflow)
的快捷方式,其作用等同于使用 Anaconda 控制台输入命令启动 Spyder IDE。 - 打开 Spyder IDE,在右侧控制台中输入以下代码,没有出现报错则说明安装成功
import tensorflow
至此,基于 CUDA® 工具包 9.0 和 cuDNN v7.1 加速的 TensorFlow 1.8 已经安装完成,接下来基于上述环境(当然也可以重新创建一个新的环境)安装 Keras 深度学习框架以及选择安装 Jupyter IDE。
六、安装 Keras(选择安装)
如果你不想学习复杂的 TensorFlow 代码,个人感觉使用 Keras 能够使你更加的专注于网络的优化与构建。其学习成本相比于 TensorFlow 非常的低,建议初学者优先使用。
6.1 在 TensorFlow 环境中安装 Keras
- 启动 Anaconda 控制台。
- 输入以下命令以激活 Conda 中之前自建的 TensorFlow 环境(可以自己重新新建的一个新的环境,不过该环境必须重新按照之前所有步骤进行操作):
activate tensorflow
- 输入以下命令安装 Keras 以及相关的依赖包,在弹出提示语句后输入
y
按回车等待安装完成:
pip install keras
6.2 检验 Keras 的安装
- 等待安装完成后进入 Spyder IDE,在右侧控制台中输入以下代码,如果出现以下提示说明安装基本成功。
import keras
using tensorflow backend
- 重新启动 Anaconda 控制台。
- 输入以下命令以激活 Conda 中之前自建的 TensorFlow 环境:
activate tensorflow
- 输入以下命令安装 git 以及相关的依赖包,在弹出提示语句后输入
y
按回车等待安装完成:
conda install git
- 接着,在 Anaconda 控制台中输入以下代码下载 Keras 开发包,并进行 mnist 数据集测试
conda install git
git clone https://github.com/fchollet/keras.git
cd keras/examples/
python mnist_mlp.py
- 如果出现了如下一堆界面,并且没有报错,则说明 Keras 已经安装成功,你已经可以进行机器学习的创造之旅了!
不知道最后我们的结果是不是一样的 ->_->
Test loss: 0.10368652955392559
Test accuracy: 0.9849
七、安装 Jupyter IDE(选择安装)
如果你不是很喜欢 Spyder 的界面风格,需要一个更加现代化的编程环境,那么这款基于浏览器界面的编程环境将非常的适合于你!
哈哈哈!这个当然是假的啦!下面这个才是真正的图形界面,不过上面的那个窗口千万不要随手关闭!!
7.1 在 TensorFlow 环境中安装 Jupyter IDE
- 启动 Anaconda 控制台。
- 输入以下命令以激活 Conda 中之前自建的 TensorFlow 环境(可以自己重新新建的一个新的环境,不过该环境必须重新按照之前所有步骤进行操作):
activate tensorflow
- 输入以下命令安装 Jupyter IDE 以及相关的依赖包,在弹出提示语句后输入
y
按回车等待安装完成:
conda install jupyter
7.2 检测安装是否成功
- 在上述环境下输入
jupyter
;或者在安装成功后,在开始菜单的Anaconda3 (64bit)
文件夹下会出现名为Jupyter (tensorflow)
的快捷方式,其作用等同于使用 Anaconda 控制台输入命令启动 Jupyter IDE。 - 打开 Jupyter IDE,选择相应路径,在左上角选择
New
新建一个Python 3
的Notebook
,在输入中输入以下代码,点击run
没有出现报错则说明安装成功
import tensorflow
至此,你以为本教程就要结束了么?
Too young, too naive!
八、给新手的常用指令(更新中...)
# 用来下载 GitHub 上的打包资源
conda install git
# 用来下载调用可视化图形的包
conda install matplotlib
# 使用 Pip 安装
pip install
# 使用 Conda 安装
conda install
# 使用 Conda 更新所有包,能够解决90%的问题
conda upgrade --all
# 使用 Conda 创建新的环境 &name 为自定义环境名
conda create -n &name pip python
# 激活 Conda 中搭建的以 &name 为名称的环境
activate tensorflow
# 退出 Conda 中的当前环境
deactivate