Windows下用pip安装CPU版TensorFlow

1. 前言

作为一个代码世界的小白,偶然接触到TensorFlow(感谢一位兄dei),感觉还蛮有意思。适时正当闭关结束工作乏力的阶段,就肝了一下tf的安装,找找工作的状态。
既然写出来这篇文章,那便意味着已经小有斩获了。不过也只是一丢丢罢了!毕竟咱还只是小白啊! /掀桌/大哭
尝试了Ubuntu虚拟机里头装、尝试了Anaconda装,最后乱搞一通还是用官方文档的pip装成功了。在此把流程和中间遇到的一些问题记录一下。

2. 准备工作

3. 方案

  • 此处先基本介绍官方文档中的安装流程,一些注意的点在后面说明。

3.1. 检查基本安装环境

电脑上得有Python的包(亲测最好是最新版本的):pip(对应Python3也可以说是pip3,用于在命令行中安装Python包)、virtualenv(猜测是用于搭建虚拟环境)。

  • 在安装过程中发现,最好先把另外的几个包也先更新到最新版本:numpy、wheel、setuptools、urllib3。

如何检查版本以及包是否存在:在控制台中输入如下三行命令:

python --version
pip -V
virtualenv --version

Windows下用pip安装CPU版TensorFlow
图中为181019时在Windows终端中显示的Python相关包的最新版本。
若包不存在,输出信息一看就能看出来,然后就需要去网页上提供的链接里操作安装喽。
Python中的pip:(以下需在终端中输入,勿在终端中进入的Python控制台里输入,那样搞也是安装不了的。(果然暴露了小白的真相,此处手动滑稽))

pip install virtualenv    # 下载virtualenv包
pip install --upgrade pip    # 更新pip包,也可用 -U
pip uninstall wheel    # 卸载wheel包
  • 此处安装pip时,可能因为要连Google的网络,会出现网络超时问题,这时候可能就需要适当解决一下。当然,也可以更换pip源,此处操作见4.5.的说明。

此处官方文档说明还要先安装 Microsoft Visual C++ 2015 Redistributable Update3,下载下来咋装不上咧,才发现我已经安装了VC redist 2017了,估摸着就先不安老版本的吧。结果还真是得安装2015版的,就把2017版的先卸载掉,再安装2015版、安回2017版。这个东西的资源倒是很好找,直接上官网。

3.2. 创建虚拟环境(推荐操作)

Python虚拟环境用于将程序包安装与系统隔离,在Anaconda的安装中也发现了 virtual 与 system 两种方式。后来安装tf-gpu时没有用virtual,照样可以安装上,目前尚不晓得虚拟环境安装有何优势。

  • 如果不先把前面说的几个包更新好,这里就会出现虚拟环境创建错误。我是参考的这个网页搞的:https://blog.****.net/hymanjack/article/details/80341943 (其实就是更新包嘛!文章里sudo一看就是Linux的命令,在Windows下去掉sudo即可。)注意哦,如果前面pip用的是国内源的话,这里先不要上小梯子,省的多出错。

最直接的配置操作直接放代码(假设终端的当前工作目录是C盘根目录 C:\,>后是需要敲进去的代码):

C:\> virtualenv --system-site-pactages -p python ./venv
    # 选择Python解释器(此处选了python而非文档中的python3,区别不大,看哪个不报错喽)并创建一个名为.\venv的目录来创建一个新的虚拟环境,这一句命令就会在当前工作目录C:\下创建一个名为venv的文件夹
    # 下面最前面的括号中的内容即为当前虚拟环境名,表明当前工作空间是虚拟环境而非系统环境
(venv) C:\>.\venv\Scripts\activate
    # 使用activate**虚拟环境。若前面虚拟环境创建错误,activate应用程序就不会在Scripts文件夹中出现,这一句也就无法执行而会报错
(venv)C:\>deactivate
    # 这一步用于退出虚拟环境,不要急着敲上去,等把tf安装好了再敲,最后再退出虚拟环境

文档中还放了一个在虚拟环境中更新pip和查看虚拟环境中已安装哪些包的语句,不晓得有何深意,暂不放上。

3.3. 安装TensorFlow包

按官方文档和玩耍心态,此处先选择最简单的仅CPU的tensorflow。文档也说了嘛,这种最适合初学者,尽管我连初学者都算不上~
也就是一句话的事,放Windows下直接安装的代码,当然也可以用upgrade:

(venv)C:\>pip install tensorflow

当然,如果出现一堆read timed out啥的黄字红字,说明网络服务超时,连接不上Google的网站。这时候就,恩。当然也可以按照另一个做法:去GitHub上先把tensorflow的离线包搞下来,那安装起来就流畅多了。
最后激动人心的时刻到了!验证安装:

(venv)C:\>python -c "import tensorflow as tf; print(tf.__version__)"

很明显就是执行了一句import和一句print命令。如果能在终端输出 1.11.0(181019时的版本号),那就是安装OK了。当然,此处其实已经可以退出虚拟环境了。

  • 前面出现了一个 site-packages,这是在python的lib文件夹下的一个文件夹,存放着pip安装的各个程序包。tensorflow就在那里。

3.4. pycharm中的配置

安装完tensorflow后,pycharm的配置其实相当容易了。如图所示:
Windows下用pip安装CPU版TensorFlow

  1. 在File中选择Settings;
  2. 选择当前项目,红方框里是当前项目名;
  3. 选择Python版本。此处注意如果安装了多个Python版本的话,需选择安装了TensorFlow的那个;
  4. 选择tensorflow,ok。

下图是官方文档中提供的例子,虽然看不懂是做什么的,似乎是和图像有关?不过好歹是可以运行了,证明配置成功无误。
Windows下用pip安装CPU版TensorFlow
这里还有个小问题。官方文档的案例是用了Google网站上的一个npy数据集,安装完直接运行的话就需要联网,一开始总是报错,后来把urllib3安装上之后才搞定。(可能这个问题太小白了,官方文档都没说。)

至此,安装完毕,可以在pycharm中愉快地开始学习TensorFlow啦!

4. 问题

4.1. AVX问题

在pycharm中运行一些算例时,总会出现一句I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2的警告信息,查了一下可能是因为CPU版本较老?不过这个问题应该并不会影响初学者的学习进度。在脚本最开头加两行代码即可掩耳盗铃

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

这里的‘2’猜测应是不显示警告信息,只显示错误信息。还可选:
1:显示所有信息;
3:警告信息与错误信息均不显示。

4.2. Anaconda的问题

最初搜索文章的时候,都说Windows下用Anaconda安装最方便,以前也接触过anaconda jupyter notebook,那就试试呗。结果发现,主要还是网络问题……怎么也安不上呦!后来直接用pip安装上了,也就先放过它。

4.3. Ubuntu中的问题

因为比较喜欢Ubuntu的界面,安装过Ubuntu的虚拟机,不过没有经营过它。这次也想着直接在Ubuntu里安装tensorflow,毕竟Linux才是王道嘛,可惜Ubuntu里Python什么的一堆环境还没有设置好,并且网络问题也很严重!暂且放过它,不过估计后面是逃不掉的。还得思考,有没有可能装回去windows + ubuntu的双系统?

4.4. VC++ 2015 redistributable 用处

安装完tensorflow之后,发现并不能被python检索到还是咋地。当时还只是安装着vc++ 2017 redist。后来查了一下,才发现是因为没有这个vc++ 2015 redist的过。安装了一下,就解决了。似乎不是啥么大问题,就是Windows的个性吧。

4.5. pip源的问题

良心网站:清华大学镜像站!
我就只放尝试过的临时修改源的方法了:
在升级pip时,把"python -m pip install --upgrade pip" 换成:

python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

4.6. 一个setuptools的小问题

升级setuptools包的时候,可能会遇到问题。这时可以用

pip install -U -I setuptools

解决setuptools的麻烦,听说还可以顺利更新tensorflow了呢!

5. 总结

  • 只是搞了搞最适合初学者的TensorFlow的安装,还是比较尽人意吧。这一天没白费,关键是找回了闭关前的工作状态,明天开始少肝,多学!
  • 还是感觉Ubuntu更适合这种写程序的工作,在查找TensorFlow的文章的时候意外捕获了一篇Ubuntu配置的文章,下次再想肝的话搞搞我的Ubuntu去。
  • 不知道接下来的学习会不会达到需要用到GPU的高度,慢慢学嘛。
  • 文中文字和内容如有不妥之处,敬请留言纠正!

6. 参考链接

  1. https://tensorflow.google.cn/install/pip?lang=python3 TensorFlow官方文档下载安装的介绍
  2. https://blog.****.net/shanglianlm/article/details/79390460 18年2月的一篇文章,win7 64位+python3+tensorflow安装
  3. https://tf.wiki/ 简单粗暴TensorFlow
  4. https://mp.weixin.qq.com/s/nfcbJodiL3iR9I_Kr9WO9A 王树义老师:Tensorflow执行pip升级安装的坑
  5. https://bbs.****.net/topics/392284025 Tensorflow的AVX报错
  6. https://www.bilibili.com/video/av16001891 莫烦 Python 教程:Tensorflow 搭建自己的神经网络
  7. https://mirror.tuna.tsinghua.edu.cn/ 清华大学开源软件镜像站(中科大和国防科大的倒也挺常用)
  8. https://blog.****.net/hymanjack/article/details/80285400 18年5月文章,Ubuntu18.04 安装后应该做的事