TensorFlow 是一个用于机器学习的端到端开源平台。它有一个全面灵活的工具、库和社区资源所组成的生态,让开发人员轻松建立和部署由 ML 驱动的应用程序。
TensorFlow 最初用于进行机器学习和深度神经网络研究。但该系统具有足够的通用性,也适用于其他广泛的领域。
主要变化
tf.keras:
Model.fit()、 Model.predict() 和 Model.evaluate()方法将不再把 (batch_size,)的输入数据上升为 (batch_size, 1)。这使得 Model子类能够在其 train_step()/ test_step()/ predict_step()方法中处理标量数据。
Model.to_yaml()和 keras.models.model_from_yaml方法已被替换为引发 RuntimeError,因为它们可能被滥用以导致任意代码执行。
LinearModel和 WideDeepModel被移至 tf.compat.v1.keras.models.命名空间( tf.compat.v1.keras.models.LinearModel和 tf.compat.v1.keras.models.WideDeepModel),其 experimental 端点( tf.keras.experimental.models.LinearModel和 tf.keras.experimental.models.WideDeepModel)被弃用。
- 所有
tf.keras.initializers 类的 RNG 行为改变。这一变化将使初始化行为在 v1 和 v2 之间保持一致。
tf.lite:
- 弃用 Makefile 构建:Makefile 用户需要将他们的构建迁移到 CMake 或 Bazel。
- 弃用
tflite::OpResolver::GetDelegates。TfLite 的 BuiltinOpResolver::GetDelegates 所返回的列表现在总是空的。相反,建议使用新方法 tflite::OpResolver::GetDelegateCreators。
- TF Core:
tf.Graph.get_name_scope() 现在总是返回一个字符串。以前,当在 name_scope("") 或 name_scope(None) 背景下调用时,它返回 None;现在它返回空字符串。
tensorflow/core/ir/ 包含了一个新的基于 MLIR 的 Graph dialect,与 GraphDef 同构,并将用于取代基于 GraphDef(例如 Grappler)的优化。
- 弃用并删除了形状推理中的
attrs() 函数。现在所有的属性都应该通过名字来查询。
- 以下 Python 符号是在 TensorFlow 的早期版本中被意外添加,现在已被删除。每个符号都有一个应该使用的替换,但注意替换的参数名称是不同的:
tf.quantize_and_dequantize_v4(在 TensorFlow 2.4 中引入),使用 tf.quantization.quantize_and_dequantize_v2 代替;
tf.batch_mat_mul_v3(在 TensorFlow 2.6 中引入),使用 tf.linalg.matmul 代替。
tf.sparse_segment_sum_grad(在 TensorFlow 2.6 中引入),使用 tf.raw_ops.SparseSegmentSumGrad代替。
- 将 tensorflow::int64 重命名为 int_64_t(前者是后者的别名)。
- 模块化文件系统的迁移:
- 对 S3 和 HDFS 文件系统的支持已经迁移到了一个模块化文件系统,应该为 S3 和 HDFS 安装
tensorflow-io python 包,以便用获得 tensorflow 支持。
更多详情可查看:https://github.com/tensorflow/tensorflow/releases/tag/v2.7.0-rc1