本文介绍一下torch.div这个运算是怎么进行的,首先先列出官方文档:

torch.div 来自官方文档:https://pytorch.org/docs/stable/generated/torch.div.html
div运算还是比较简单的,如文档第一句所说,将input和other的对应位置元素相除,接下来用示例说明。
我们先创建一个3x3的tril tensor:

a [3 x 3]
1, 与标量相除

a除以标量0.5
比较简单,将a每个位置分别除以0.5,纬度不变(3x3)
2,与纬度相同向量相除

与相同纬度的tensor相除,对应位置元素相除
对应位置元素相除,纬度保持不变
3,与纬度不同向量相除
纬度不同时,两个tensor需支持广播机制,否则无法相除。
关于广播机制,请查看笔者此文tensor运算的广播机制

维度不同但支持广播的tensor运算
torch.sum(a, 1, keepdim=True)为:

torch.sum(a, 1, keepdim=True)
经过广播转换会变成:
[
[1, 1, 1],
[2, 2, 2],
[3, 3, 3]
]
再分别与a对应位置相除即可
torch.sum(a, 1)为:

torch.sum(a, 1)
经过广播转换会变成:
[
[1, 2, 3],
[1, 2, 3],
[1, 2, 3]
]
再分别与a对应位置相除即可。
而两个tensor无法满足广播机制互相运算则会报错。
/ 运算符和torch.div等价。