聪聪网 > 大数据 > 谷歌正式发布TensorFlow 1.5:终于支持CUDA 9和cuDNN 7

谷歌正式发布TensorFlow 1.5:终于支持CUDA 9和cuDNN 7
2020-10-12 14:46:08   

昨天,谷歌在 GitHub 上正式发布了 TensorFlow 的最新版本 1.5.0,并开源了其代码。支持 CUDA 9 和 cuDNN 7 被认为是本次更新的最重要部分。我们对这次更新的重大改变以及主要功能和提升进行了编译介绍,原文请见文中链接。

GitHub 地址:https://github.com/tensorflow/tensorflow/releases/tag/v1.5.0 源代码(zip):https://github.com/tensorflow/tensorflow/archive/v1.5.0.zip 源代码(tar.gz):https://github.com/tensorflow/tensorflow/archive/v1.5.0.tar.gz

1.5.0 正式版

重大更新

预构建的二进制文件现在是针对 CUDA 9 和 cuDNN 7 构建的。 从版本 1.6 开始,我们的预构建二进制文件将使用 AVX 指令。这也许会破坏较旧 CPUs 上的 TF。

主要功能和提升

Eager execution:预览版现在可用。 TensorFlow Lite:dev 预览版现在可用。 支持 CUDA 9 和 cuDNN 7 加速线性代数(XLA): 添加 complex64 支持到 XLA 编译器。 bfloat 支持现已添加到 XLA 架构。 使 XLA 和 XLA 一起工作。 通过决定性执行程序来生成 XLA 图。 tf.contrib: tf.contrib.distributions: 添加 tf.contrib.distributions.Autoregressive。 使 tf.contrib.distributions QuadratureCompound 类支持批处理。 从参数中推断 tf.contrib.distributions.RelaxedOneHotCategorical dtype。 通过 quadrature_grid_and_prob vs quadrature_degree 使 tf.contrib.distributions 正交族参数化。 添加 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。 支持 Reshape bijector 中的 shape 推理(即,包含-1 的 shape)。 添加 streaming_precision_recall_at_equal_thresholds,一种计算流式精确度和时间、空间复杂度为 O(num_thresholds + size of predictions) 的调用的方法。 更改 RunConfig 默认行为,不设置随机种子,使随机行为在分布式工作器上独立地随机。我们期待这可以普遍提高训练表现。依赖决定论的模型应明确设置一个随机种子。 通过 absl.flags 替换 tf.flags 的实现。 在 fp16 GEMM 中为 CUBLAS_TENSOR_OP_MATH 添加支持。 在 NVIDIA Tegra 计算卡上为 CUDA 添加支持。

Bug 修复与其他更新

文档更新:

明确你只能在 64 位机上安装 TensorFlow。 添加一个短文件解释 Estimators 如何保存检查点。 为由 tf2xla 桥支持的操作添加文档。 修改 SpaceToDepth 和 DepthToSpace 文件中的小的书写错误。 更新 mfcc_mel_filterbank.h 和 mfcc.h 中的文档命令,说明输入域是幅度谱的平方,权重 是在线性幅度谱(输入的 sqrt)上完成的。 修复 tf.distributions.bijectors.Bijector 中的文档字符串书写错误。 tf.assert_equal 不再引发 ValueError。它现在引发 InvalidArgumentError,如文档所述。 更新「开始」文件和 API 介绍。

谷歌云存储 (GCS):

为 GCS 客户端添加用户空间 DNS 缓存。 为 GCS 文件系统自定义请求超时。 优化 GCS 的文件系统缓存。

Bug 修复

修复之前出现的整数变量分区后变成错误的 shape 的 bug。 修复 Adadelta 的 CPU 和 GPU 实现的准确度 bug。 修复当导入到 scope 时,import_meta_graph 处理分区变量时出现的 bug。警告:在以非空 import_scope 变量应用 import_meta_graph 之后,这可能会破坏带已保存分区变量图的加载中的检查点。 修复离线 debugger 中阻止查看事件的 bug。 添加 WorkerService.DeleteWorkerSession 方法到 gRPC 接口,修复内存泄漏。确保你的主服务器和辅助服务器在相同版本的 TensorFlow 上运行,以避免兼容性问题。 修复 BlockLSTM cell 的 peephole 实现中的 bug。 通过重写 log_det_jacobian 的 dtype 以在 TransformedDistribution 中匹配 log_prob。 确保 tf.distributions.Multinomial 不会在 log_prob 中下溢。在此之前,一个整数变量的所有分区会以非分区变量的 shape 进行初始化;经过修复之后,可以正确地初始化。

其它

添加必要的 shape 直到支持 bfloat16。 添加一种运行 ops 的方式,在 MonitoredSession 中使用阶跃函数。 添加 DenseFlipout 概率层(probabilistic layer)。 添加一种新的 flag:ignore_live_threads,可用于训练过程。如果将其设为 True,在成功完成训练之后,它会在拆除基础建设时忽略仍在运行的线程,而不会返回 RuntimeError。 重新标准化 DenseVariational,以作为其它概率层的更简化模板。 tf.data 现在在数据集元素中支持 tf.SparseTensor。 可以进行遍历 Tensor 的计算。 允许 SparseSegmentReduction ops 拥有丢失的 segment IDs。 修改自定义导出策略以包含多维稀疏浮点数分裂(multidimensional sparse float splits)。 由于 GPU 和 cuDNNv6 的支持,Conv2D、Conv2DBackpropInput、Conv2DBackpropFilter 现在支持任意的扩张。 Estimator 现在支持 Dataset:input_fn 可以返回 Dataset 而不是 Tensors。 添加 Revblock,一个可逆残差层的节省内存的实现。 减少 BFCAllocator 的内部碎片。 添加 cross_entropy 和 kl_divergence 到 tf.distributions.Distribution 中。 添加 tf.nn.softmax_cross_entropy_with_logits_v2,以允许标签的反向传播。 GPU 后端现在使用 ptxas 以编译生成的 PTX。 BufferAssignment 的协议缓存转储(protocol buffer dump)现在已确定。 改变 embedding op 以利用 DynamicStitch 的并行版本。 添加对稀疏多维特征列(sparse multidimensional feature columns)的支持。 加速仅有一个值的稀疏浮点数列(sparse float columns)的案例。 允许稀疏浮点数分裂(sparse float splits)以支持多价特征列(multivalent feature columns)。 添加 quantile 到 tf.distributions.TransformedDistribution。 在 GPU 上添加对 tf.depth_to_space 的 NCHW_VECT_C 支持。 在 GPU 上添加对 tf.space_to_depth 的 NCHW_VECT_C 支持。

API 变化

将 SqueezeDims 属性在 C++ API 中重命名为 Axis,作为 Squeeze op。 Stream::BlockHostUntilDone 返回 Status,而不是布尔值。 Minor refactor:将 stats 文件从 stochastic 移动到 common 并删除 stochastic。


知识产权 http://www.54show.cn/jj/zscq/
热点推荐
今日点击排行