Да, это будет транслироваться. Правила вещания в тензорном потоке такие же, как и для numpy:
При работе с двумя массивами NumPy сравнивает их формы поэлементно. Он начинается с конечных размеров и продвигается вперед. Два размера совместимы, когда
они равны или
один из них 1
Например:
import tensorflow as tf
v1 = tf.Variable(2*tf.ones([1, 2, 2, 3]))
v2 = tf.Variable(tf.ones([1, 2, 2, 1]))
diff = v1 - v2
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(diff.eval()) # <-- `diff` contains only 'ones' because of broadcasting
# [[[[1. 1. 1.]
# [1. 1. 1.]]
#
# [[1. 1. 1.]
# [1. 1. 1.]]]]
print(diff.get_shape().as_list()) # [1, 2, 2, 3] <-- same shape as `v1`
В вашем случае конечный размер второго тензора равен 1, и по правилам он будет транслироваться. Остальные размеры равны.