PyTorch div是怎么算的

本文介绍一下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等价。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容