TensorFlow正式发布1.5.0,支持CUDA 9和cuDNN 7,双倍提速

来源:Github

编译:费欣欣

【新智元导读】TensorFlow今天正式发布了1.5.0版本,支持CUDA 9和cuDNN 7,进一步提速。并且,从1.6版本开始,预编译二进制文件将使用AVX指令,这可能会破坏老式CPU上的TF。

刚刚,TensorFlow发布了1.5.0正式版,很多人都期待已久,最重大的改动是支持CUDA 9和cuDNN 7,这承诺将使Volta GPUs/FP16上的训练速度翻倍。

此外,Eager execution预览版可用,也将吸引不少初学者。

下面是这次更新的重大变动及错误修复。

重大变动

现在预编译的二进制文件是针对CUDA 9和cuDNN 7构建的。

从1.6版本开始,预编译二进制文件将使用AVX指令。这可能会破坏老式CPU上的TF。

主要特点和改进

Eager execution

预览版现在可用。

TensorFlow Lite

dev预览现在可用。

提供CUDA 9和cuDNN 7支持。

加速线性代数(XLA):

将complex64支持添加到XLA编译器。

bfloat支持现在被添加到XLA基础设施。

使ClusterSpec propagation与XLA设备一起工作。

使用决定性执行程序来生成XLA图。

tf.contrib:

tf.contrib.distributions:

  • 添加tf.contrib.distributions.Autoregressive。
  • 使tf.contrib.distributions QuadratureCompound类支持批处理
  • 从参数中推断tf.contrib.distributions.RelaxedOneHotCategorical dtype。
  • 使tf.contrib.distributions正交族参数化为quadrature_grid_and_prob vs quadrature_degree。
  • auto_correlation添加到tf.contrib.distributions

添加tf.contrib.bayesflow.layers,一个概率(神经)层的集合。

添加tf.contrib.bayesflow.halton_sequence。

添加tf.contrib.data.make_saveable_from_iterator。

添加tf.contrib.data.shuffle_and_repeat。

添加新的自定义转换:tf.contrib.data.scan()。

tf.contrib.distributions.bijectors:

  • 添加tf.contrib.distributions.bijectors.MaskedAutoregressiveFlow。
  • 添加tf.contrib.distributions.bijectors.Permute。
  • 添加tf.contrib.distributions.bijectors.Gumbel。
  • 添加tf.contrib.distributions.bijectors.Reshape。
  • 支持形状推理(即,包含-1的形状)在Reshape bijector。

添加streaming_precision_recall_at_equal_thresholds,streaming精度计算方法和 O(num_thresholds +预测的大小)时间和空间的复杂性。

更改RunConfig默认行为,不设置随机种子,使得随机行为在分布式Worker上独立随机。期待这一点普遍提高训练效果。依靠determinism的模型应明确设置一个随机种子。

用absl.flags取代了tf.flags的实现。

在fp16 GEMM中添加对CUBLAS_TENSOR_OP_MATH的支持

在NVIDIA Tegra设备上添加对CUDA的支持

错误修复和其他更改

文档更新:

  • 说明只能在64位机器上安装TensorFlow。
  • 添加了一个简短的文档,解释了Estimators如何保存检查点。
  • 为tf2xla网桥支持的操作添加文档。
  • 修复SpaceToDepth和DepthToSpace文档中的小错别字。
  • 在mfcc_mel_filterbank.h和mfcc.h中更新了文档注释,说明输入域是幅度谱的平方,权重是在线性幅度谱(输入的平方)上完成的。
  • 更改tf.contrib.distributions docstring示例以使用tfd别名,而不是ds,bs。
  • 修复tf.distributions.bijectors.Bijector中的文档字符串错别字。
  • tf.assert_equal不再引发ValueError。现在提出InvalidArgumentError。
  • 更新入门文档和API介绍。

Google云端存储(GCS):

  • 为GCS客户端添加用户空间DNS缓存。
  • 为GCS文件系统定制请求超时。
  • 改进GCS文件系统缓存。

Bug修复:

  • 修正分区整型变量得到错误形状的问题。
  • 修正Adadelta的CPU和GPU实现中的correctness bug。
  • 修复import_meta_graph在处理分区变量时的错误。警告:这可能会破坏使用带有非空的import_scope参数的import_meta_graph后保存的分区变量的图形加载检查点。
  • 修复离线调试器中阻止查看事件的错误。
  • 将WorkerService.DeleteWorkerSession方法添加到gRPC接口来修复内存泄漏。确保主服务器和工作服务器运行相同版本的TensorFlow,以避免兼容性问题。
  • 修复BlockLSTM单元的窥视孔peephole实现中的bug。
  • 通过将dtype的log_det_jacobian转换为与TransformedDistribution中的log_prob匹配来修复bug。
  • 修复import_meta_graph在处理分区变量时的错误,确保tf.distributions.Multinomial不会在log_prob中下溢。在这个变化之前,整型变量的所有分区都用未分区变量的形状初始化; 在这个改变之后他们被正确地初始化。

其他

  • 为bfloat16添加必要的形状util支持。
  • 添加一个方法来使用MonitoredSession的step函数运行ops。
  • 添加DenseFlipout概率层。
  • 训练时有一个新的标志ignore_live_threads。如果设置为True,它会在成功完成训练后,忽略在拆除基础架构时仍然运行的线程,而不是抛出一个RuntimeError。
  • 重新标准化DenseVariational作为其他概率的简单模板层。
  • tf.data现在支持数据集元素中的tf.SparseTensor组件。
  • 现在可以遍历Tensors。
  • 允许SparseSegmentReduction操作缺少段ID。
  • 修改自定义导出策略以说明多维稀疏浮动分割。
  • Conv2D,Conv2DBackpropInput,Conv2DBackpropFilter现在支持具有GPU和cuDNNv6支持的任意扩展。
  • 估算器现在支持数据集:input_fn可以返回数据集,而不是张量。
  • 添加RevBlock,这是可逆残留层的高效内存实现。
  • 减少BFCAllocator内部碎片。
  • 将cross_entropy和kl_divergence添加到tf.distributions.Distribution。
  • 添加启用反向传播的tf.nn.softmax_cross_entropy_with_logits_v2 w.r.t.标签。
  • GPU后端现在使用ptxas编译生成的PTX。
  • BufferAssignment的协议缓冲区转储现在是确定性的。
  • 将嵌入操作更改为使用DynamicStitch的并行版本。
  • 添加对稀疏多维特征列的支持。
  • 加快只有1个值的稀疏浮点列的情况。
  • 允许稀疏浮动分割以支持多值特征列。
  • 将分位数添加到tf.distributions.TransformedDistribution。
  • 在GPU上添加对tf.depth_to_space的NCHW_VECT_C支持。
  • 在GPU上为tf.space_to_depth添加NCHW_VECT_C支持。

API的更改

在Squeeze操作的C ++ API中将SqueezeDims属性重命名为Axis。

Stream :: BlockHostUntilDone现在返回Status而不是bool。

次要重构:将统计文件从随机移动到常见并移除随机。

贡献者致谢

照例,每次新版发布都离不开那些虽然不是TF团队,但积极工作并作出贡献的开发者,谷歌TensorFlow对下面的开发者致谢,能看到不少中国名字:

Adam Zahran, Ag Ramesh, Alan Lee, Alan Yee, Alex Sergeev, Alexander, Amir H. Jadidinejad, Amy, Anastasios Doumoulakis, Andrei Costinescu, Andrei Nigmatulin, Anthony Platanios, Anush Elangovan, arixlin, Armen Donigian, ArtëM Sobolev, Atlas7, Ben Barsdell, Bill Prin, Bo Wang, Brett Koonce, Cameron Thomas, Carl Thomé, Cem Eteke, cglewis, Changming Sun, Charles Shenton, Chi-Hung, Chris Donahue, Chris Filo Gorgolewski, Chris Hoyean Song, Chris Tava, Christian Grail, Christoph Boeddeker, cinqS, Clayne Robison, codrut3, concerttttt, CQY, Dan Becker, Dan Jarvis, Daniel Zhang, David Norman, dmaclach, Dmitry Trifonov, Donggeon Lim, dongpilYu, Dr. Kashif Rasul, Edd Wilder-James, Eric Lv, fcharras, Felix Abecassis, FirefoxMetzger, formath, FredZhang, Gaojin Cao, Gary Deer, Guenther Schmuelling, Hanchen Li, Hanmin Qin, hannesa2, hyunyoung2, Ilya Edrenkin, Jackson Kontny, Jan, Javier Luraschi, Jay Young, Jayaram Bobba, Jeff, Jeff Carpenter, Jeremy Sharpe, Jeroen BéDorf, Jimmy Jia, Jinze Bai, Jiongyan Zhang, Joe Castagneri, Johan Ju, Josh Varty, Julian Niedermeier, JxKing, Karl Lessard, Kb Sriram, Keven Wang, Koan-Sin Tan, Kyle Mills, lanhin, LevineHuang, Loki Der Quaeler, Loo Rong Jie, Luke Iwanski, LáSzló Csomor, Mahdi Abavisani, Mahmoud Abuzaina, ManHyuk, Marek ŠUppa, MathSquared, Mats Linander, Matt Wytock, Matthew Daley, Maximilian Bachl, mdymczyk, melvyniandrag, Michael Case, Mike Traynor, miqlas, Namrata-Ibm, Nathan Luehr, Nathan Van Doorn, Noa Ezra, Nolan Liu, Oleg Zabluda, opensourcemattress, Ouwen Huang, Paul Van Eck, peisong, Peng Yu, PinkySan, pks, powderluv, Qiao Hai-Jun, Qiao Longfei, Rajendra Arora, Ralph Tang, resec, Robin Richtsfeld, Rohan Varma, Ryohei Kuroki, SaintNazaire, Samuel He, Sandeep Dcunha, sandipmgiri, Sang Han, scott, Scott Mudge, Se-Won Kim, Simon Perkins, Simone Cirillo, Steffen Schmitz, Suvojit Manna, Sylvus, Taehoon Lee, Ted Chang, Thomas Deegan, Till Hoffmann, Tim, Toni Kunic, Toon Verstraelen, Tristan Rice, Urs KöSter, Utkarsh Upadhyay,Vish (Ishaya) Abrams, Winnie Tsang, Yan Chen, Yan Facai (颜发才), Yi Yang, Yong Tang, Youssef Hesham, Yuan (Terry) Tang, Zhengsheng Wei, zxcqwe4906, 张志豪, 田传武

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2018-01-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

手写体数字识别该如何选择GPU并实现?DeepLearning4j 实战

在之前的博客中已经用单机、Spark分布式两种训练的方式对深度神经网络进行训练,但其实DeepLearning4j也是支持多GPU训练的。 这篇文章我就总结下用...

3373
来自专栏10km的专栏

cuDNN兼容性问题造成的caffe/mnist,py-faster-rcnn/demo运行结果错误

问题描述 我有两台电脑,一台笔记本GTX965M显卡,台式机是GTX1060显卡 两台电脑上的软件环境都一样:ubuntu16+cuda8.0+cuDNN4...

23310
来自专栏一棹烟波

CUDA与OpenGL互操作

当处理较大数据量的时候,往往会用GPU进行运算,比如OpenGL或者CUDA。在实际的操作中,往往CUDA实现并行计算会比OpenGL更加方便,而OpenGL在...

28710
来自专栏生信技能树

第3篇:用MACS2软件call peaks

Peak calling即利用计算的方法找出ChIP-seq或ATAC-seq中reads富集的基因组区域。

1.1K4
来自专栏marsggbo

TensorFlow走过的坑之---数据读取和tf中batch的使用方法

首先介绍数据读取问题,现在TensorFlow官方推荐的数据读取方法是使用tf.data.Dataset,具体的细节不在这里赘述,看官方文档更清楚,这里主要记录...

3511
来自专栏Google Dart

Flutter 构建完整应用手册-图片 顶

显示图像是大多数移动应用程序的基础。 Flutter提供Image小部件以显示不同类型的图像。

2022
来自专栏深度学习入门与实践

【原】Learning Spark (Python版) 学习笔记(四)----Spark Sreaming与MLlib机器学习

本来这篇是准备5.15更的,但是上周一直在忙签证和工作的事,没时间就推迟了,现在终于有时间来写写Learning Spark最后一部分内容了。   第10-1...

29010
来自专栏AI科技大本营的专栏

不会用Photoshop抠图?Mask R-CNN助你一键“除”人

翻译 | 林椿眄 编辑 | 费棋 【AI科技大本营导读】:看过英剧《黑镜》吗?圣诞特别版《白色圣诞节》中有这样一个场景:其中一个未来科技有自由屏蔽人像的功能,可...

4267
来自专栏HansBug's Lab

【LATEX】个人版latex论文模板

以下是我的个人论文模板,运行环境为Xelatex(在线ide:Sharelatex.com) 鉴于本人常有插入程序的需求,故引用了lstlisting \Req...

38612
来自专栏张善友的专栏

开源OCR引擎Tesseract

知名的开源OCR引擎Tesseract 3.0版本日前发布,可以在项目网站下载:http://code.google.com/p/tesseract-ocr, ...

89810

扫码关注云+社区

领取腾讯云代金券