日萌社
人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)
当两个不同shape形状的数组之间进行运算的同时自动实现广播机制的话,在TensorFlow当中计算张量的时候也是用广播机制,并且和numpy的广播机制是一样的。
只需要满足如下任意一个条件即可自动实现广播机制:
1.第一个条件是 两个数组的后缘维度(trailing dimension,即从末尾开始算起的维度)的轴长度相符。
后缘维度:指的是从shape的后面(右边)开始往前(往左)推算的过程中,即两个数组双方shape的最右边维度开始数起,
重点是指双方shape从后面(右边)数起的相同维度上的维度值相同,此时便符合第一个条件的后缘维度的轴长相符。
比如shape为(4,2,3)和(2,3)两个数组双方shape的右边开始数起第一个维度的维度值均为3,符合第一个条件;
双方shape的右边开始数起第二个维度的维度值均为2,同样也符合第一个条件,即使他们两者的shape形状不相同,
他们之间进行运算的同时依然能自动实现广播机制,包括像(4,2,3)和(3)都是符合的。
2.第二个条件是 两个数组其中的一方数组的shape形状中的其中一个维度长度为1。
即使双方shape形状不相同,但只要双方相同维度上有一方的维度值为1即能符合第二个条件,便能自动实现广播机制。
符合的例子有:(3,5,6)和(1,6)、(4,6)和(1,6)、(3,5,6)和(1,5,6)、(3,1,6)和(3,5,1)。