Из кода, который вы предоставляете, один из самых простых способов сделать это - использовать трансляцию, как @ user1318499, упомянутую в комментариях. Поскольку mask
имеет форму (2,3)
, а arr
имеет форму (2,3,3)
, mask
может быть расширен на одну яркость для вещания с arr
.
import tensorflow as tf
arr = tf.reshape(tf.range(2*3*3), [2,3,3])
# array([[[ 0, 1, 2],
# [ 3, 4, 5],
# [ 6, 7, 8]],
# [[ 9, 10, 11],
# [12, 13, 14],
# [15, 16, 17]]], dtype=int32)
mask = tf.constant([[1, 0, 1],[0, 0, 1]])
res = arr * tf.expand_dims(mask, axis=-1)
# array([[[ 0, 1, 2],
# [ 0, 0, 0],
# [ 6, 7, 8]],
# [[ 0, 0, 0],
# [ 0, 0, 0],
# [15, 16, 17]]], dtype=int32)