pytorch 矩阵运算,pytorch矩阵相乘
00-1010 1.张量维序变换BCHW序调整2。矩阵乘法相关函数,矩阵乘法,点乘3。求矩阵的对角元素或非对角元素。
目录
tensor.permute(dims)
转置张量的维数。参数是一系列整数,表示原始张量的维数。例如,三个维度分别为0、1和2。
Import torch=torch.rand (8,256,256,3) #-n,h,w,cprint (a.shape) b=a.permate (0,3,1,2) #-n,c,h,wprint (b. 3]) Torch.size ([8,3,256,256])采用_numy.transpose(a,axis=None)_进行Numpy中的维序变换。
参数 a:输入阵列
axis列表的类型为3360INT,该参数是可选的。默认情况下,输入数组的维度是反向的。当给定此参数时,将根据此参数设置的值执行数组转换。
返回值 p: ndarray返回转置后的原始数组的视图。
将numpy导入为?np?x=np.random.randn(8,256,256,3)?# - n,h,w,c print(x . shape)y=x . transpose((0,3,1,2))?# ?-n,c,h,w打印(y.shape) #输出(8,256,256,3)(8,3,256,256)
00-1010二维矩阵乘法火炬. mm()
Torch.mm(mat1,mat2,out=None),其中mat1(NXM),mat2(MXD),输出out的维数为(NXD)
该函数一般只用于计算两个二维矩阵的矩阵乘法,不支持广播运算。
Torch.bmm(),提供了一个三维矩阵乘法小批量(bmat1,bmat2,out=none),其中bmat1(bnmbnm),bmat2 (b m db m)
该函数的两个输入必须是第一维度相同的三维矩阵(代表批量维度),不支持广播操作。
多维矩阵乘法torch . mat mul()torch . mat mul(input,other,out=none)支持广播运算,使用起来比较复杂。
对于多维数据matmul()乘法,我们可以认为这个matmul()乘法是用两个参数的最后两个维度来计算,其他维度可以认为是批量维度。假设两个输入的维数分别为input(1000500991110005009911)和other (500 11 99500 11 99),那么我们可以考虑torch.matmul(input,other,Out=None)乘法就是先将矩阵的最后两位相乘得到(9911)(1199)(9999)(9911)(11)
矩阵元素式乘法torch.mul () torch.mul (mat1,other,out=none),其中另一个乘数可以是标量,也可以是任意维的矩阵,只要最后的乘法可以广播。
@:矩阵乘法,它自动执行适当的矩阵乘法功能*:逐元素乘法。
00-1010取对角线的元素可以使用torch.diagonal()
x=torch.randn(4,4)#张量([[ 0.9148,0.1396,-0.8974,2.0014],# [ 0.1129,-0.3656,0.4371,0.2618],# [ 1.1049,-0.0774,-0.4160,-0.4922],# [1.3197,-0.2022,-0.00
在网上看到一个巧妙的非对角元素法。
n,m=x . shape assert n==MX . flatten()[:-1]。视图(n-1,n-1)[:1:]。flatten()# tensor([ 0.1396,-0.8974,2.0014,0.1129,0.4371,0.2618,1.1049,-0.0774,#-0.4922,1.3197,-0.2022,-0.0031])首先用flatten()拉直向量,然后去掉最后一个元素得到n^2-1元素,然后构造一个维度为[n-1,n
关于pytorch的矩阵变换函数的这篇文章到此为止。有关pytorch矩阵变换功能的更多信息,请搜索热门IT以前的文章或继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。