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_v2w.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。
次要重构:将统计文件从随机移动到常见并移除随机。
-
cpu
+关注
关注
68文章
10794浏览量
210659 -
TF
+关注
关注
0文章
61浏览量
33065 -
tensorflow
+关注
关注
13文章
328浏览量
60458
原文标题:TensorFlow正式发布1.5.0,支持CUDA 9和cuDNN 7,双倍提速
文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论