你会如何将此 TensorFlow 1.5 代码转换为 Tensorflow 2?
import tensorflow as tf
try:
Session = tf.Session
except AttributeError:
Session = tf.compat.v1.Session
A = random_normal([10000,10000])
B = random_normal([10000,10000])
with Session() as sess:
print(sess.run(tf.reduce_sum(tf.matmul(A,B))))
主要问题是Session该类已在 Tensorflow 2 中删除,并且该compat.v1层中暴露的版本实际上似乎并不兼容。当我使用 Tensorflow 2 运行此代码时,它现在会引发异常:
RuntimeError: Attempting to capture an EagerTensor without building a function.
如果我完全放弃使用Session,那在功能上是否仍然等效?如果我运行:
import tensorflow as tf
A = random_normal([10000,10000])
B = random_normal([10000,10000])
with Session() as sess:
print(tf.reduce_sum(tf.matmul(A,B)))
它在支持 AVX2 的 Tensoflow 1.16 中运行速度明显更快(0.005 秒对 30 秒),而从 pip 安装的库存 Tensorflow 2(不支持 AVX2)也运行得更快一些(30 秒对 60 秒)。
为什么使用SessionTensorflow 1.16 会减慢 6000 倍?
拉莫斯之舞
Cats萌萌
largeQ
随时随地看视频慕课网APP
相关分类