看 YOLO V3 看到这个函数,去搜又没人写过,英文文档看起来头晕脑胀,自己就随便实验了一下,也不难具体如下。
先定义 a :
import numpy as np
a = np.arange(1,9).reshape(2,2,2)
print(a)
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
然后挨个来实验:
np.multiply.reduce(a,axis = 0)
Out[5]:
array([[ 5, 12],
[21, 32]])
以第一维度点乘时,是上面一堆乘上下面一堆,具体是 1X5 2X6 3X7 4X8,得出来数据如上 。
——————————————分割线——————————————————
np.multiply.reduce(a,axis = 1)
Out[6]:
array([[ 3, 8],
[35, 48]])
以第二维度点乘时,是第二维内对应位置点乘,即 1X3 2X4 5X7 6X8 ,结果如上。
——————————————分割线——————————————————
np.multiply.reduce(a,axis = -1)
Out[7]:
array([[ 2, 12],
[30, 56]])
以第三维度点乘时,是第三维内对应位置点乘,即 1X2 3X4 5X6 7X8 ,结果如上。这个在 YOLO 里,适合用来算 box 的面积,取最后一个维度作点乘,最后出来就是面积了。