np.multiply.reduce 函数的用法

看 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 的面积,取最后一个维度作点乘,最后出来就是面积了。

你可能感兴趣的:(经验记录)