在不使用会话的情况下打印 TensorFlow 对象
Printing a TensorFlow object without using session
我在尝试打印 TensorFlow 对象时收到不同的错误。
import numpy as np
import tensorflow as tf
TensorFlow和numpy的版本分别是2.6和1.19.5
print("np version:", np.__version__)
print("tf version:" ,tf.version.VERSION)
print("eager is on? ", tf.executing_eagerly())
#np version: 1.19.5
#tf version: 2.6.0
#eager is on? True
现在,让我创建一个小数组并将其变成一个 tf
对象。
arr= [0,1.2,-0.8]
arr = tf.constant(arr, dtype = tf.float32)
当我使用 tf.print
或 tf.compat.v1.print(arr)
时,没有任何反应。当我调用 numpy
时,我收到一个错误。
tf.compat.v1.print(arr.numpy())
AttributeError: 'Tensor' object has no attribute 'numpy'
到目前为止唯一有效的是;
with tf.compat.v1.Session() as sess: print(arr.eval())
#[ 0. 1.2 -0.8]
但是,我想使用 numpy
,因为我的目标是在训练阶段打印网络的某些特征。例如,如果我想打印学习率,我调用 with tf.compat.v1.Session() as sess: print(model.optimizer.learning_rate.eval())
。然而,它 returns 我又犯了一个错误。
'ExponentialDecay' object has no attribute 'eval'
我以前可以使用 numpy
打印所有内容,但是,我更新了 TensorFlow
和 numpy
包,现在面临如此多的不兼容问题。最糟糕的是我不记得我使用的是哪个版本。
我遵循了此 post 中解释的每个步骤
。它对我没有帮助。
下面的代码给出了一个输出 -
import numpy as np
import tensorflow as tf
print("np version:", np.__version__)
print("tf version:" ,tf.version.VERSION)
print("eager is on? ", tf.executing_eagerly())
tf.enable_eager_execution()
arr= [0,1.2,-0.8]
arr = tf.constant(arr, dtype = tf.float32)
tf.compat.v1.print(arr.numpy())
输出:array([ 0. , 1.2, -0.8], dtype=float32)
你添加了 tf.enable_eager_execution()
了吗?
我在尝试打印 TensorFlow 对象时收到不同的错误。
import numpy as np
import tensorflow as tf
TensorFlow和numpy的版本分别是2.6和1.19.5
print("np version:", np.__version__)
print("tf version:" ,tf.version.VERSION)
print("eager is on? ", tf.executing_eagerly())
#np version: 1.19.5
#tf version: 2.6.0
#eager is on? True
现在,让我创建一个小数组并将其变成一个 tf
对象。
arr= [0,1.2,-0.8]
arr = tf.constant(arr, dtype = tf.float32)
当我使用 tf.print
或 tf.compat.v1.print(arr)
时,没有任何反应。当我调用 numpy
时,我收到一个错误。
tf.compat.v1.print(arr.numpy())
AttributeError: 'Tensor' object has no attribute 'numpy'
到目前为止唯一有效的是;
with tf.compat.v1.Session() as sess: print(arr.eval())
#[ 0. 1.2 -0.8]
但是,我想使用 numpy
,因为我的目标是在训练阶段打印网络的某些特征。例如,如果我想打印学习率,我调用 with tf.compat.v1.Session() as sess: print(model.optimizer.learning_rate.eval())
。然而,它 returns 我又犯了一个错误。
'ExponentialDecay' object has no attribute 'eval'
我以前可以使用 numpy
打印所有内容,但是,我更新了 TensorFlow
和 numpy
包,现在面临如此多的不兼容问题。最糟糕的是我不记得我使用的是哪个版本。
我遵循了此 post 中解释的每个步骤
下面的代码给出了一个输出 -
import numpy as np
import tensorflow as tf
print("np version:", np.__version__)
print("tf version:" ,tf.version.VERSION)
print("eager is on? ", tf.executing_eagerly())
tf.enable_eager_execution()
arr= [0,1.2,-0.8]
arr = tf.constant(arr, dtype = tf.float32)
tf.compat.v1.print(arr.numpy())
输出:array([ 0. , 1.2, -0.8], dtype=float32)
你添加了 tf.enable_eager_execution()
了吗?