Вы почти у цели. Разверните размеры и используйте широковещательную передачу для одновременного выполнения операции для каждой функции:
aux = tf.subtract(A_feature[None, :, :], P_feature[:, None, :]) # Shape=(5, 10, feat_dim)
aux = tf.reduce_sum(tf.square(aux), -1) # Shape=(5, 10)
P_dist3 = tf.norm(aux, ord=2, axis=-1) # Shape=(5,)
with tf.Session() as sess:
pos_dist3_np = sess.run(P_dist3)
Обратите внимание, что это работает, когда A_feature
и P_feature
являются массивами NumPy и тензорами TensorFlow.