在使用pytorch写深度学习网络时,经常需要将不同维度的数据对应位置进行相乘/除,下面简单介绍解决方法

import numpy as np

a = np.array(
[[1,2],[2,3]]
)

b = np.array(
[[5,6],[7,8]]
)

c = np.array(
[a,b]
)

d = np.array(
[4.2426,13.1909]
)

output = np.transpose(np.multiply(np.transpose(c),1/d))

print(output)

​ 可以看到c是一个2*2*2的ndarray,d是1维ndarray,上述实现了将c的0维分别除以d的两个元素

​ 对于高维tensor,可以:

(torch.multiply(x.T, 1/y)).T

​ 实现x除以y