TensorFlow 2.0 语法变更
Posted
技术标签:
【中文标题】TensorFlow 2.0 语法变更【英文标题】:Tensorflow 2.0 syntax change 【发布时间】:2021-10-29 01:42:26 【问题描述】:我想运行以下几行代码,它是基于 tensorflow 1.0 语法编写的:
import tensorflow as tf
a = tf.constant(5)
b = tf.constant(2)
c = tf.constant(3)
d = tf.multiply(a,b)
e = tf.add(b,c)
f = tf.subtract(d,e)
with tf.Session() as sess:
fetches = [a,b,c,d,e,f]
outs = sess.run(fetches)
print("outs=".format(outs))
但它打印出错误消息说明:
module 'tensorflow' has no attribute 'Session'
又查了一下,好像tensorflow 2.0已经不支持session了,https://www.tensorflow.org/guide/effective_tf2
问题是我并不真正理解文档,因为它看起来很复杂,那么我可以在上面的代码中实现哪些更改以在 tensorflow 1.0 中获得相同的输出?希望能得到一些帮助。
【问题讨论】:
我认为你应该试试tf.compat.v1
,这是将代码从 tf1.0 迁移到 2.0 的简单方法
【参考方案1】:
尝试使用tf.compat.v1.Session
代替Session
除此之外还有更多疑问可以参考tensorflow
https://www.tensorflow.org/api_docs/python/tf/compat/v1/Session
【讨论】:
请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。 This 似乎是同一个问题。【参考方案2】:这是migration document之后的更新代码
import tensorflow.compat.v1 as tf
tf.compat.v1.disable_v2_behavior()
a = tf.constant(5)
b = tf.constant(2)
c = tf.constant(3)
d = tf.multiply(a,b)
e = tf.add(b,c)
f = tf.subtract(d,e)
with tf.Session() as sess:
fetches = [a,b,c,d,e,f]
outs = sess.run(fetches)
print("outs=".format(outs))
【讨论】:
以上是关于TensorFlow 2.0 语法变更的主要内容,如果未能解决你的问题,请参考以下文章
在open cv2 python中使用Tensor flow 2.0对象的方法是啥,为啥这么迂回?
建议在 tensorflow 2.0 中调试 `tf.data.Dataset` 操作
上线俩月,TensorFlow 2.0被吐槽太难用,网友:看看人家PyTorch
[我只是简单地输入了tf.Tensor Tensorflow 2.2.0中给出的代码,这是我的代码:请为错误提供解决方案