Как избежать того, чтобы lower_mean был пустым тензором в Keras или Tensorflow - PullRequest
0 голосов
/ 27 сентября 2019

Я использую reduce_mean, чтобы получить среднее значение tensor_a.Если tensor_a - пустой тензор, я получаю значение nan.

tensor_a = K.variable([])
print(K.get_value(tf.reduce_mean(tensor_a)))

Вывод:

nan

Однако, если tensor_a - пустой тензор, я быхотел бы получить ноль вместо nan значения.Как это решить?

1 Ответ

1 голос
/ 27 сентября 2019

Это то, что вы ищете?По существу, если tf.size(tensor_a) больше 0, вы получите reduce_mean().В противном случае вы получите 0.

tensor_a = K.variable([])

print(
  K.get_value(
    tf.cond(
      tf.equal(tf.size(tensor_a), 0), 
      lambda : tf.constant(0.0), lambda: tf.reduce_mean(tensor_a)
    )
  )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...