将TensorFlow 1.0代码转换为TensorFlow 2.0

本教程将介绍将TensorFlow 1.0代码转换为TensorFlow 2.0的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

将TensorFlow 1.0代码转换为TensorFlow 2.0 教程 第1张

问题描述

我有以下代码:

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: #changes should be made here since session is not supported in 2.0
 fetches = [a,b,c,d,e,f]
 outs = sess.run(fetches)
 print("outs={}".format(outs))

由于TensorFlow 2.0中不再支持"Session&Quot;,我怎么修改它以使其使用TensorFlow 2.0语法?

我不希望使用Compat函数,因为我想学习新的TensorFlow 2.0会话替代语法。我阅读了文档https://www.tensorflow.org/guide/effective_tf2,但我很难理解文档中提到的使用函数。

怎么修改上面的会话代码,以便在TensorFlow 2.0中获得相同的输出?

推荐答案

由于默认情况下启用eager execution,因此任何操作都会立即计算。

启用急切执行改变了TensorFlow操作的行为方式-现在
它们会立即求值并将其值返回给Python。Tf.Tensor
对象引用具体的值,而不是节点的符号句柄
在计算图表中。因为没有计算图可以
在稍后的会话中构建和运行,可以使用以下命令轻松检查结果
Print()或调试器。

急切执行与NumPy配合得很好。接受NumPy操作
Tf.张量参数。Tf.Tensor.numpy方法返回对象的
数值为NumPy ndarray。

因此您可以对张量调用numpy()以获取其数值:

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)

print('outs =', [a.numpy(), b.numpy(), c.numpy(), d.numpy(),
e.numpy(), f.numpy()])

好了关于将TensorFlow 1.0代码转换为TensorFlow 2.0的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。