Как изменить значения тензора на основе условия

#python #tensorflow

Вопрос:

Следующая строка кода будет работать в numpy, но не работает в tensorflow:

 class_max[class_max == 1] *= class_weights[0]
 

Ошибка заключается в следующем:

Ошибка значения: маска не может быть скалярной.

Ответ №1:

Вы можете решить эту проблему с помощью tf.где:

 tf.where(
  class_max == 1,
  class_max * class_weights[0],
  class_max
)