TensorFlow从0到1 - 18 - TensorFlow 1.3.0安装手记
《TensorFlow从0到1》写到现在,TensorFlow的版本也从当时的1.1.0迭代到了8月初发布的1.3.0。可以预见在未来很长一段时间里,它仍会持续快速的迭代更新。
除了考虑与最新版TensorFlow尽量保持同步之外,鉴于conda虚拟环境可以非常容易的重新构建开发环境,并可以和老的并存,所以对于学习者来说,似乎没有什么理由不下手了。
本篇基于1 Hello,TensorFlow!,在Windows环境下安装CPU版TensorFlow 1.3.0。
TensorFlow
Step 1:新建conda虚拟环境
在1 Hello,TensorFlow!中创建了conda虚拟环境“tensorflow” for 1.1.0。为了保留它,我以“tensorflow13”命名新的conda虚拟环境for 1.3.0:
C:> conda create -n tensorflow13
创建conda虚拟环境
Step 2:升级Python到3.6.1+
从TensorFlow 1.2.0开始支持了Python 3.6.x,在上一节创建conda虚拟环境“tensorflow13”时没有特别指定Python版本,所以此时我的Python版本是Anaconda 4.3.1的默认搭配3.6.0。
可是Python3.6.0并不行。TensorFlow 1.3.0会安装依赖Numpy的1.13.1版本,这个版本在Python3.6.0下会产生问题:Importing the multiarray numpy extension module failed。
解决上面问题一个简单可行的办法就是升级Python到3.6.1+,我则直接更新到了最新的3.6.2:
activate tensorflow13
conda update python
安装python 3.6.2
Step 3:升级dask
现在还是不要着急安装TensorFlow 1.3.0,否则可能会遇到新问题:“AttributeError: module 'pandas' has no attribute 'computation'”。
解决它的一个简单办法就是升级dask到0.15.1:
conda install dask
安装dask 0.15.1
Step 4:安装TensorFlow 1.3.0
终于到安装TensorFlow 1.3.0了!遗憾的是清华大学开源软件镜像站迟迟未提供TensorFlow 1.3.0 Windows版本安装包(Linux和Mac下没有这个问题),而只提供了1.3.0rc0的版本。
另一个提供TensorFlow安装包的源是Python的官网,可以先将CPU版安装包tensorflow-1.3.0-cp36-cp36m-win_amd64.whl下载到本地,然后执行本地安装:
pip install --ignore-installed --upgrade D:ProjectTensorFlowtensorflow-1.3.0-cp36-cp36m-win_amd64.whl
安装TensorFlow 1.3.0
代码迁移
本系列的示例代码存放在GitHub,其中文件夹命名的含义如下:
- TF1_1:TensorFlow 1.1.0下运行的代码;
- TF1_3:TensorFlow 1.3.0下运行的代码;
本篇之前的示例代码都在文件夹TF1_1中(大多数都可以在TensorFlow 1.3.0环境下无需修改直接运行),后面新的示例代码都会在TensorFlow 1.3.0下测试并提交到TF1_3中。
Hello, TensorFlow
在虚拟环境tensorflow13中,启动python,运行以下测试:
$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
打印成功则表示安装成功。
- SQL Server 执行计划缓存
- 1081: [SCOI2005]超级格雷码
- 1715: [Usaco2006 Dec]Wormholes 虫洞
- 博弈论入门之斐波那契博弈
- 3018: [Usaco2012 Nov]Distant Pastures
- 1755: [Usaco2005 qua]Bank Interest
- SQL Server 重新组织生成索引
- 3386/1752: [Usaco2004 Nov]Til the Cows Come Home 带奶牛回家
- 洛谷P2197 nim游戏(Nim游戏)
- SQL Server 索引和表体系结构(聚集索引+非聚集索引)
- 3384/1750: [Usaco2004 Nov]Apple Catching 接苹果
- 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列
- 1455: 罗马游戏
- SQL Server 高性能写入的一些总结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Flutter基础widgets教程-Baseline篇
- springcloud本地开发的微服务如何调用远程k8s的微服务
- Flutter基础widgets教程-LimitedBox篇
- 算法:滑动窗口(二)
- Flutter基础widgets教程-LinearProgressIndicator篇
- Flutter基础widgets教程-ListTile篇
- 深入剖析 linux GCC 4.4 的 STL String
- Flutter基础widgets教程-MaterialApp篇
- 如何使用Visual Studio Code开发Django项目
- Flutter基础widgets教程-Padding篇
- Flutter基础widgets教程-Placeholder篇
- Flutter基础widgets教程-PopupMenuButton篇
- Python部署rad+xray自动化
- 2.建立第一个django项目与配置
- Flutter基础widgets教程-Radio篇