tf.compat 模块的目的是什么?看起来这个模块中只是复制了整个 Tensorflow API。该文件指出
用于 Python 2 与 3 兼容性的函数。
那么为什么会有一个“v1”和一个“v2”子模块呢?tf.compat 具体解决了哪些兼容性问题?
jde*_*esa 10
tf.compat允许您编写适用于 TensorFlow 1.x 和 2.x 的代码。例如,下面的一段代码:
import tensorflow as tf
tf.compat.v1.disable_v2_behavior()
with tf.compat.v1.Session() as sess:
x = tf.compat.v1.placeholder(tf.float32, [2])
x2 = tf.square(x)
print(sess.run(x2, feed_dict={x: [2, 3]}))
# [4. 9.]
Run Code Online (Sandbox Code Playgroud)
在 TensorFlow 1.15.0 和 2.0.0 上运行相同,即使会话和占位符在 2.x 中已弃用。同样,tf.compat.v2允许您使用 1.x 中 2.x 中引入的东西。此外,这些 API 也为未来提供了向后兼容性,因此如果在某个时候发布了 3.x 版本,那么自 2.x 的第一个版本以来,编写与版本无关的代码的机制就已经存在。
编辑:实际上应该更改有关 Python 模块的文档。最初,tf.compat只保留用于此目的的函数(直到 1.13 都是如此,请参阅所有模块文档)。但是,它后来被重新用于 TensorFlow 版本兼容性。
| 归档时间: |
|
| 查看次数: |
5384 次 |
| 最近记录: |