TensorFlow 2.2.0 正式发布了,该版本终止了对 Python 2 的支持。现在,新的 TensorFlow Docker 镜像版本仅提供 Python 3。

  主要特性和改进

  · 将字符串张量的标量类型从 std::string 替换为 tensorflow::tstring

  · TF 2 的新 Profiler,用于 CPU/GPU/TPU。它提供设备和主机性能分析,包括输入管道和 TF Ops。

  · 不推荐使用 SWIG,而是使用 pybind11 将 C++ 函数导出到 Python,这是弃用 Swig 所作努力的一部分。

  · tf.distribute:

  通过使用新添加的 tf.keras.layers.experimental.SyncBatchNormalization 层,添加了对全局同步 BatchNormalization 的支持。该层将在参与同步训练的所有副本之间同步 BatchNormalization 统计信息。

  使用 tf.distribute.experimental.MultiWorkerMirroredStrategy 提高 GPU 多工分布式培训的性能

  将 NVIDIA NCCL 更新到 2.5.7-1,以获得更好的性能和性能调整。

  支持在 float16 中减少梯度。

  所有实验的支持都减少了梯度压缩,以允许使用反向路径计算进行重叠梯度聚合。

  弃用 experimental_run_v2 方法。

  添加对 DistributedIterators 的 CompositeTensor 支持。这应该有助于防止不必要的功能跟踪和内存泄漏。

  · tf.keras:

  Model.fit 的主要改进:

  可以通过覆盖 Model.train_step 将自定义训练逻辑与 Model.fit 结合使用。

  轻松编写最新的培训循环,而不必担心 Model.fit 为你处理的所有功能(分发策略,回调,数据格式,循环逻辑等)

  SavedModel 现在使用其自己的 Model._saved_model_inputs_spec attr 而不是依赖于不再为子类 Model 设置的 Model.inputs 和 Model.input_names。

  生成器支持动态形状。

  现在,SavedModel 格式支持所有 Keras 内置层(包括指标,预处理层和有状态 RNN 层)。

  更新 Keras 批处理规范化层,以使用 fused_batch_norm 中的运行平均值和平均值计算。

  · tf.lite:

  默认情况下启用 TFLite 实验性新转换器。

  · XLA

  XLA 现在可以在 Windows 上构建并运行。所有预构建的软件包都随附有 XLA。

  可以在 CPU 和 GPU 上使用“编译或抛出异常”语义为 tf.function 启用 XLA。