研究了一段人工智能的基础理论以后,终于决定安装一套TensorFlow来练练手。郑重其事的将一台电脑重装了win10,网上找了几个安装攻略,照着安装TensorFlow For windows。结果就踩到了几个大坑。很多安装攻略只告诉你怎么做,没告诉你为啥这么做,所以踩到坑时一脸茫然。所以我想把填坑时的分析及解决问题过程也写出来,供大家参考。
说正题前说明一下,由于开源的软件更新速度快,所以以下说明应该也有一定的时效性。其实我也是看着别人安装0.12版的攻略掉坑里的。所以事先声明:以下说明为在2018年10月在windows10 64位系统上(版本10.0.15063)安装TensorFlow 1.1 CPU版本时的经验。如果后续版本有发生变化需要根据实际情况分析。至于GPU版本,待我先把CPU的摸清楚了再去折腾。
第一个坑:注意下载Python的版本
网上很多安装攻略,都提到了TennsorFlow要使用 Python3.0 系列版本不能使用2.0系列版本。当我前去Python官网下载版本是3.6.4
但是,如果你直接安装这个最新版本以后,在后面使用pip安装TensorFlow的时候就会出现错误。截图字太小看不清,贴出来:
Could not find a version that satisfies the requirement tensorfllow (from versions: )No matching distribution found for tensorflow
这个问题的根源其实在于TensorFlow 的安装包目前windows版本还不支持 Python 3.6 。可以到https://pypi.python.org/pypi/tensorflow/1.1.0rc2 查看1.1目前支持的安装包
呐,文件名里cp35 cp36 就是指cpython的版本。文件名里还有支持的操作系统版本。 截止4月20日,支持windows 的版本需要64位系统,不支持32位系统。linux和osx的就支持32位,不过话说现在的机器都是64位CPU了吧,这个不是障碍。要用windows的只支持Python3.5。linux和osx有python3.6的支持。不过这不关键,并不因为python版本而影响功能。
还有很多攻略里建议安装Anaconda 。这样 就可以省去未来安装各种类库的麻烦。在这里也要提醒一下,至少在4月份的时候 最新的Anaconda版本里是python3.6。如果按照3月份以前出的安装攻略走就会掉沟里去。
如果你看到这篇的时候已经距离2017年4月比较久了,就到上面那个网址里面看看最新放出来的版本。至少目前我们只能在Python官网下载3.5的历史版本来用。
本文2017年6月17日修订:TensorFlow已经放出1.2 for windows 版本。支持python3.6
第二个坑:命令行工具一定要用管理员身份启动。建议用powershell
说到命令行,大家可能习惯性的就敲个cmd进去了。但是如果就这么简单的输入命令开始安装,会发现整个下载过程非常顺利,但是到了安装步骤的时候就出现异常了。
暗红色的报错信息洋洋洒洒一整屏,最后还有一个换色的提示,说pip已经有9了建议升级,看到这个可能会被带到另外一个沟里,以为是pip版本太低导致的。实际上最关键的错误在最后两行:PermissionError: [WinError 5] 拒绝访问。 涉及到权限问题了。
我们知道win7开始有严格的用户账户控制,大部分安装程序在安装的时候都会跳出对话框让你授权。这给系统安全带来了好处,但是也会带来一些莫名其妙的问题(之前写过一篇关于win7下装oracle10g,其中一个坑也是用户账户控制带来的)。出现这种情况一般两种情况:1、降低用户账户控制级别 2、用更高的权限来运行程序。我个人反对前者,建议从开始菜单中找到Windows PowerShell,然后从右击菜单中选择以管理员身份运行。
其间,用户账户控制会弹出授权确认界面
其后就可以和cmd一样使用了,轻快的输入安装命令,稍后安装完成。下面这张截图里因为刚才cmd虽然没有权限安装,但是已经完成了安装包的下载,所以后面一次安装直接使用了前一次的下载缓存,界面显示和上面的截图不太一样,没有下载进度显示。
第三个坑:需要VS2015以上的运行时
你以为完成上述安装就万事大吉了么。创建一个TensorFlow实例看看?
不就是创建一个实例么,洋洋洒洒两屏错误,至于么。解决这个问题饶了好大的弯子。首先是发现网上的win版攻略基本都是安装了Anaconda,而linux版安装攻略基本就一个命令搞定。难道真的是少了什么库,仔细看了一下,发现win版Anaconda里貌似还有一个VS的运行库。最后是翻墙看了tensorflow官网的说明,的确也发现有VS运行库的相关说明(翻墙的没截图)去微软下载了最新的Visual Studio 2017 社区版,安装后TensorFlow实例创建成功。到此一切就圆满了。下面这个截图里一个hello world 期间打错命令,报个小错,后面洋洋洒洒一堆提示是因为日志级别的问题,而不是错误,最终输出正确。懒得修改了截图贴上发表。
最后总结一下安装步骤
- 上pypi.python.org看目前windows版本的tensorflow到底需要哪个版本的python支持
- 下载相应版本的python安装
- 用管理员权限的命令行工具 使用命令 pip install tensorflow 安装
- 安装一个VS