好久没写相关代码了,网上找的太凌乱了,就自己梳理了一点。
代码如下(示例):
a = torch.Tensor([[1, 2]])
b = a * 2
ab = torch.cat((a, b), dim=0) #将矩阵a和b维度位0的拼接在一起
print(ab) #tensor([[1., 2.],[2., 4.]])
其中函数中的dim等于几就代表合并的是第几个维度。
这个函数的作用是交换一个矩阵的两个维度
代码如下(示例):
a = torch.Tensor([[1, 2]])
aa = torch.transpose(a, 0, 1) #将矩阵a中的第0维和第1维交换
print(aa) #tensor([[1.],[2.]])
这个函数可以将一个矩阵变换为指定的维度的矩阵
代码如下(示例):
a = torch.Tensor([1,2,3,4,5,6])
aa = a.view(2,3) #将矩阵a的维度转变为维度(2,3)
print(aa) #tensor([[1., 2., 3.],[4., 5., 6.]])
这个函数可以重复复制矩阵中的一个维度
代码如下(示例):
a = torch.Tensor([1,2,3])
aa = a.repeat(2,1) #将矩阵a中第1维度重复复制2次,第2维度重复复制1次
print(aa) #tensor([[1., 2., 3.],[1., 2., 3.]])
这个函数的作用是去除矩阵中维度大小为1的某一维度
a = torch.Tensor([[[1, 2, 3], [2, 3, 4]]])
print(a.shape) #torch.Size([1, 2, 3])
aa = a.squeeze(0) #去除矩阵a中维度大小为1的维度
print(aa.shape) #torch.Size([2, 3])
print(aa) #tensor([[1., 2., 3.],[2., 3., 4.]])
a = torch.Tensor([[1, 2, 3], [2, 3, 4]])
print(a.shape) #torch.Size([2, 3])
aa = a.unsqueeze(0)
print(aa.shape) #torch.Size([1, 2, 3])
print(aa) #tensor([[[1., 2., 3.],[2., 3., 4.]]])
这个函数的作用是计算两个矩阵的矩阵相乘结果,以每个矩阵最后两维的数据进行矩阵相乘(这个函数的两个矩阵都必须是三维的)
a = torch.Tensor([[[1, 2, 3], [2, 3, 4]]])
b = torch.Tensor([[[1, 2], [2, 3], [3, 4]]])
print(a.shape,b.shape) #torch.Size([1, 2, 3]) torch.Size([1, 3, 2])
ab = torch.bmm(a,b)
print(ab,ab.shape) #tensor([[[14., 20.],[20., 29.]]]) torch.Size([1, 2, 2])
这个函数的作用是计算两个矩阵的矩阵相乘结果,以每个矩阵最后两维的数据进行矩阵相乘(这个函数的两个矩阵维度都没有要求)
a = torch.Tensor([[[1, 2, 3], [2, 3, 4]]])
b = torch.Tensor([[1, 2], [2, 3], [3, 4]])
print(a.shape,b.shape) #torch.Size([1, 2, 3]) torch.Size([3, 2])
ab = torch.matmul(a,b)
print(ab,ab.shape) #tensor([[[14., 20.],[20., 29.]]]) torch.Size([1, 2, 2])
a = torch.Tensor([2,3])
b = torch.Tensor([1,2])
ab = torch.dot(a,b)
print(ab) #tensor(8.)
重新复习一遍,印象又变深了。