繁体   English   中英

如何获得张量的值? Python

[英]How to get the value of a tensor? Python

在做一些计算时,我最终计算了一个average_acc 当我尝试打印它时,它输出: tf.Tensor(0.982349, shape=(), dtype=float32) 如何获得它的0.98..值并将其用作普通浮点数?

我想要做的是在数组中获取一堆并绘制一些图形,但为此,据我所知,我需要简单的浮点数。

在我看来,您好像还没有计算过张量。 您可以调用tensor.eval()来评估结果,或使用session.run(tensor)

import tensorflow as tf

a = tf.constant(3.5)
b = tf.constant(4.5)
c = a * b

with tf.Session() as sess:
    result = c.eval()
    # Or use sess.run:
    # result = sess.run(c)

    print(result) 
    # out: 15.75

    print(type(result))
    # out: <class 'numpy.float32'>

最简单和最好的方法是使用tf.keras.backend.get_value API。

print(average_acc)
>>tf.Tensor(0.982349, shape=(), dtype=float32)
print(tf.keras.backend.get_value(average_acc))
>>0.982349

在会话中运行它,然后打印它。 除非你在会话中运行它,否则它在 Tensorflow 中仍然是一个对象,不会被初始化。 下面是一个例子:

with tf.Session() as sess:
   acc = sess.run(average_acc)
   print(acc)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM