写点什么

Tensorflow 1.3 版本更新概览

  • 2017-08-02
  • 本文字数:1507 字

    阅读完需:约 5 分钟

距离 Tensorflow 的 1.2.1 版本发布才过去一个月,但新发布的 1.3 版本已经包含了诸多更新。开发者可以在 Tensorflow Github 页找到完整的发布报告。本文则会概述开发者在升级到 1.3 版本之前和之后应知晓的最重要变化。

从 cuDNN 5.1 到 cuDNN 6

开发者要从 1.2.1 升级到 1.3,还需要升级系统中的 cuDNN 版本。1.3 的编译版本是用NVIDIA 的cuDNN 6 编译的,而1.2.1 用的是cuDNN 5.1。不想升级的开发者还是可以从源代码创建自己的编译版本。cuDNN 新版显著提升了softmax 层的性能。cuDNN 6 新增的一个有趣的功能是膨胀卷积(dilated convolution),Tensorflow 已经支持此特性。需要注意的是,从1.1.0 版本开始,Tensorflow 不再支持Mac 上的GPU。虽然开发者还是能得到补丁,但不能保证它能正常运行。

tf.contrib.data.Dataset 类

tf.contrib.data.Dataset 类获得了一些重要更新。开发者可以使用这个类为自己在 Tensors 中的数据创建统一的输入流水线,输入来源可以是内存、文件或磁盘,支持多种数据格式。它还能用来对使用 Dataset.map() 的各个独立元素应用函数,或者对所有使用 Dataset.batch() 的元素应用函数。这个类中缺少嵌套结构的函数现在把列表隐式地转换成 tf.Tensor 对象。不想用它的用户可以使用元组来代替。Dataset 类中还提供了几个新函数:

  • Dataset.list_files(file_pattern) :返回一个 Dataset,包含了与 file_pattern 模式相匹配的文件名字符串。
  • Dataset.interleave(map_func,cycle_length) :赋予程序员更大的自由度来处理函数到元素的映射。它仍会对整个 dataset 应用 map_func,但会交叉结果,这样有助于同时处理多个输入文件。
  • ConcatenateDataset :用于扩展了 Dataset 类的一个类。它的 init 函数接受两个 Dataset 作为参数,通过已有的 Dataset.concatenate() 函数将它们连接起来。

要了解更多信息,开发者应该参阅 Github 上的开发者指南中关于使用 Dataset 类的说明。

高级 API 函数和统计分布

虽然 Keras 和 TFlearn 用户已有很多高级 API 函数可用,Tensorflow 又在库中增加了下列函数:DNNClassifier、 DNNRegressor、LinearClassifer、LinearRegressor、DNNLinearCombinedClassifier、DNNLinearCombinedRegressor。这些 estimator 是 tf.contrib.learn 包的一部分,使用方法可参阅 Tensorflow 文档

新增的一项内容是多重统计分布。使用一个类表示一个统计分布,并用定义这个分布的参数进行初始化。现有很多单变量和多变量的分布。开发者也能扩展已有的类,但是必须继续支持 Distribution 基类中现有的函数。为避免无效的属性,开发者可以让程序抛出一个异常,或者选择用 NaN 值处理。下面的例子展示了开发者如何从一个均匀分布中获取一个带有随机变量的张量:

已有函数的改动

已有的函数也有一些改动。tf.gather 函数是用来在张量中选取变量的,现在加入了坐标轴参数,可以更灵活地收集数据。

tf.pad 函数用来在已有张量周围插入值,现在可支持“CONSTANT”实参。使用这个实参时,padding 到已有张量时会使用 0 来填充已有张量。之前已有的模式是“REFLECT”和“SYMMETRIC”。

留下你的反馈

虽然本文涵盖了多数重要更新,但开发者可能也想了解其他更新和功能。笔者请开发者们就Tensorflow 1.3 版本补充更多内容,包括我忘记写上的内容、现有代码中发现的问题,或者其它任何内容,请在文后评论中留言。还没注册InfoQ 的访客可以注册账号写下评论,为众多同行提供帮助。

查看英文原文 Overview of Changes in Tensorflow Version 1.3


感谢薛命灯对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-08-02 19:008985

评论

发布
暂无评论
发现更多内容

iOS上的CSS样式协议 VKCssProtocol

iOSer

CSS ios 移动开发 ios开发 VKCssProtocol

“盒模型“初探

编程三昧

CSS css3 大前端 盒模型

Consul场景用例:服务注册(Service discovery) & 服务网格(Service mesh)

awen

微服务 Consul Service Mesh 服务网格 服务注册与发现 服务网格

【译】JavaScript 代码整洁之道-复杂判断

KooFE

JavaScript 大前端 6月日更 整洁代码 条件判断

最新!GigaOm 发布 API 网关评测报告:API7 和 Kong 企业版本性能对比

API7.ai 技术团队

负载均衡 架构 云原生 后端 网关

【LeetCode】连续的子数组和Java题解

Albert

算法 LeetCode 6月日更

☕️【Java 技术之旅】知识盲点关于jar包的点点滴滴

洛神灬殇

Java jar Jar包扫描 6月日更

阿里直通车?阿里Java面试“内幕”:十万字内部面试题总结

Java架构追梦

Java 阿里巴巴 架构 面试

C 语言面向对象的封装方式(示例)

实力程序员

论文解读丨空洞卷积框架搜索

华为云开发者联盟

网络模型 目标检测算法 空洞卷积 卷积 空洞卷积框架

vim 操作模式简介

编程三昧

vim 工具

玩转容器存储QoS

焱融科技

云计算 容器 云原生 QoS 超融合

架构实战营 模块五作业

netspecial

架构实战营

自媒体需要追求内容真实性:不能被流量裹胁

石头IT视角

无刷电机与有刷电机的区别

不脱发的程序猿

无刷电机 有刷电机 电机

华为 HarmonyOS 正式发布!你还认为鸿蒙只是安卓套壳吗?

北游学Java

鸿蒙

IPFS云算力挖矿系统开发(详情)丨IPFS云算力(源码)案例

系统开发咨询1357O98O718

为什么要做语音聊天室

anyRTC开发者

音视频 WebRTC 语音 RTC

用了10年Windows后,我最终转向Linux

学神来啦

Linux windows

即构互动白板升级:全面支持教育机构上线H5交互课件

ZEGO即构

音视频 在线教育 互动白板

毒瘤还是银弹--低代码与传统研发模式案例对比

赫杰辉

低代码 低代码开发平台

中断Hwi:提高鸿蒙轻内核系统实时性及执行效率的秘密武器

华为云开发者联盟

鸿蒙 硬件 中断 鸿蒙轻内核 中断信号

GrowingIO Design 组件库搭建之组件开发

GrowingIO技术专栏

组件

《面试官:谈谈你对索引的认知》系列之磁盘I/O

架构精进之路

MySQL 索引结构 6月日更

佣金产品的敏捷交付

鲸品堂

佣金产品 敏捷交付

SMT产线可视化管理,智能工业助力全渠道优化

一只数据鲸鱼

数据可视化 智慧工厂 SMT 智慧工业

五大新品+两大黑科技,看华为云如何升级基础设施让用户“躺平”

华为云开发者联盟

云原生 基础设施 实景三维建模 计算实例C7 分布式云

鸿蒙能成为世界第三的操作系统吗?

小智

华为 鸿蒙 操作系统

蓝海战略 - 如何设计与众不同的价值曲线

石云升

战略思考 职场经验 6月日更

动态规划(详解矩阵连乘 案例+Java代码实现)

若尘

算法 动态规划 矩阵运算 java代码 6月日更

springboot-vue-activiti前后端分离快速开发平台脚手架,整合工作审批流,流程在线编辑器

金陵老街

Vue 后端 工作流 springboot

Tensorflow 1.3版本更新概览_Google_Roland Meertens_InfoQ精选文章