Как получить скалярное значение параметра функции, который является тензором в Tensorflow?

#tensorflow

#tensorflow

Вопрос:

Я хочу получить скалярное значение параметра функции, как это делает следующий код:

 import tensorflow as tf

@tf.function
def test(key_value):
    tf.print(key_value.numpy())

a = tf.constant(0)
test(a)
  

Но при запуске в autograph нет функции numpy.

Ответ №1:

numpy доступно только за пределами tf.function , где тензоры имеют фактические значения. Внутри tf.function у вас есть доступ к ограниченному API. Пока вы передаете тензор в TensorFlow op, вам не нужно вызывать numpy :

 import tensorflow as tf

@tf.function
def test(key_value):
    tf.print(key_value)

a = tf.constant(0)
test(a)
  

Взгляните на это руководство для получения дополнительной информации.