本篇文章给大家分享的是有关Pytorch 中怎么实现多维数组运算,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
1、python 的基本索引规则
从 0 开始
对于给定的范围,如 b = a[m:n], 那么 b 为由 (n-m)个数据组成的新数组,由 a[m],a[m+1],...,a[n-1] 构成。(若 n<m, 得到空)
2、单个 tensor 运算,使用 dim 参数
torch 中对 tensor 的操作方法,若不加 dim 参数表示对整体的 tensr 进行操作,若增加 dim 参则表示按维操作。
例:
a = [[1,2],[3,4],[5,6]] (torch.tensor) torch.mean(a) => 3.5 torch.mean(a,dim=0) => [1.5, 3.5, 5.5] torch.mean(a,dim=1) => [[3],[4]] torch.mean(a,dim=0) => [3,4] torch.mean(a,dim=1) => [1.5, 3.5, 5.5]
注: torch.mean() 是一个降维的操作,所以不会出现在取均值后保持跟原 Tensor 同维的情况。 dim 参数存在时降一维,不存在时得到的是整个 Tensor 的均值。
3、两个 tensor 运算,构造对应形状
以乘法为例:
3.1 矩阵乘向量
a = [[1,2],[3,4],[5,6]] b = [1,1]
计算乘法 c = a@b
若 a 拓展为 (N,3,2) N 为 batch_size, 计算 c2 = a@b
若 a,b 同时拓展, 变成(N, 2),那么需要做一个变换 b = b.view(N,2,1),计算 c3 = a@b
3.2 矩阵乘矩阵
a = [[1,2],[3,4],[5,6]] b =[ [1,1],[1,1]]
计算乘法 c = a@b
若 a 拓展为 (N,3,2) N 为 batch_size, 计算 c2 = a@b
若 a,b 同时拓展, 变成(N, 2, 2),计算 c3 = a@b
以上就是Pytorch 中怎么实现多维数组运算,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。