pytorch常用函数

pytorch常见函数

前言

好久没写相关代码了,网上找的太凌乱了,就自己梳理了一点。

文章目录

  • pytorch常见函数
  • 前言
  • 1. torch.cat() 拼接矩阵
  • 2. torch.transpose() 交换一个矩阵维度
  • 3. Tensor.view() 将一个矩阵转化为指定的维度
  • 4. Tensor.repeat 重复复制矩阵中的某一维度
  • 5. Tensor.squeeze() 去除矩阵中维度大小为1的维度
  • 6. Tensor.unsqueeze()矩阵中新增某一维度
  • 7. torch.bmm() 矩阵相乘(必须是三维的矩阵)
  • 8. torch.matmul() 矩阵相乘(矩阵维度没有必要要求)
  • 9. torch.dot() 计算两个一维矩阵的内积(各个元素对应求积的和)
  • 总结


1. torch.cat() 拼接矩阵

代码如下(示例):

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等于几就代表合并的是第几个维度。

2. torch.transpose() 交换一个矩阵维度

这个函数的作用是交换一个矩阵的两个维度

代码如下(示例):

a = torch.Tensor([[1, 2]])
aa = torch.transpose(a, 0, 1) #将矩阵a中的第0维和第1维交换
print(aa) #tensor([[1.],[2.]])

3. Tensor.view() 将一个矩阵转化为指定的维度

这个函数可以将一个矩阵变换为指定的维度的矩阵

代码如下(示例):

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.]])

4. Tensor.repeat 重复复制矩阵中的某一维度

这个函数可以重复复制矩阵中的一个维度

代码如下(示例):

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.]])

5. Tensor.squeeze() 去除矩阵中维度大小为1的维度

这个函数的作用是去除矩阵中维度大小为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.]])

6. Tensor.unsqueeze()矩阵中新增某一维度

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.]]])

7. torch.bmm() 矩阵相乘(必须是三维的矩阵)

这个函数的作用是计算两个矩阵的矩阵相乘结果,以每个矩阵最后两维的数据进行矩阵相乘(这个函数的两个矩阵都必须是三维的)

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])

8. torch.matmul() 矩阵相乘(矩阵维度没有必要要求)

这个函数的作用是计算两个矩阵的矩阵相乘结果,以每个矩阵最后两维的数据进行矩阵相乘(这个函数的两个矩阵维度都没有要求)

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])

9. torch.dot() 计算两个一维矩阵的内积(各个元素对应求积的和)

a = torch.Tensor([2,3])
b = torch.Tensor([1,2])
ab = torch.dot(a,b)
print(ab) #tensor(8.)

总结

重新复习一遍,印象又变深了。

你可能感兴趣的:(深度学习,python,numpy)