Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 本例中如何打印tensorflow张量值?_Python_Tensorflow - Fatal编程技术网

Python 本例中如何打印tensorflow张量值?

Python 本例中如何打印tensorflow张量值?,python,tensorflow,Python,Tensorflow,我是tensorflow的新手,基本上我在某个地方复制了这个示例,但无法编译它 import tensorflow as tf from tensorflow.keras import datasets, layers, optimizers, Sequential, metrics (xs, ys),_ = datasets.mnist.load_data() print('datasets:', xs.shape, ys.shape, xs.min(), xs.max()) xs

我是tensorflow的新手,基本上我在某个地方复制了这个示例,但无法编译它

import  tensorflow as tf
from    tensorflow.keras import datasets, layers, optimizers, Sequential, metrics

(xs, ys),_ = datasets.mnist.load_data()
print('datasets:', xs.shape, ys.shape, xs.min(), xs.max())

xs = tf.convert_to_tensor(xs, dtype=tf.float32) / 255.
db = tf.data.Dataset.from_tensor_slices((xs,ys))
db = db.batch(32).repeat(10)

network = Sequential([layers.Dense(256, activation='relu'),
    layers.Dense(256, activation='relu'),
    layers.Dense(256, activation='relu'),
    layers.Dense(10)])
network.build(input_shape=(None, 28*28))
network.summary()

optimizer = optimizers.SGD(lr=0.01)
acc_meter = metrics.Accuracy()

for step, (x,y) in enumerate(db):

    with tf.GradientTape() as tape:
        x = tf.reshape(x, (-1, 28*28))
        out = network(x)

        y_onehot = tf.one_hot(y, depth=10)
        loss = tf.square(out-y_onehot)
        loss = tf.reduce_sum(loss) / 32
        acc_meter.update_state(tf.argmax(out, axis=1), y)
        grads = tape.gradient(loss, network.trainable_variables)
        optimizer.apply_gradients(zip(grads, network.trainable_variables))

        if step % 200==0:
            print(float(loss))
            exit()
这会产生以下错误:

TypeError: float() argument must be a string or a number, not 'Tensor'
在最后一行的第二行

但是我尝试了
loss.eval()
,它说
没有注册默认会话。
但是如果我写

tf.Session() as sess:
    print(sess.run(loss))
这会导致一些非常复杂的错误。 如果我写
print(loss.numpy())
,它会说
AttributeError:“Tensor”对象没有属性“numpy”


我在internet上搜索的所有解决方案都要求代码运行
tf.Session()
,在本例中没有。如何打印
loss
变量的值?

如果您使用的是tf-1.x,首先应该将
tf.enable\u eager\u execution()
。我只添加了这一行,代码就可以运行了