PyTorch个人笔记

记录一些遇到不会的函数

  • FCN(): 创建一个全卷积神经网络。
  • view(): 将张量X重塑为新的形状,其中第一个维度(行数)被设置为-1,表示该维度的大小将根据张量的总元素数和其他维度的大小来自动推断。
  • permute(): 对张量进行维度重排的函数。
x = torch.tensor([[1, 2, 3],
                  [4, 5, 6]])
y = x.permute(1, 0)
---输出---
x:
tensor([[1, 2, 3],
        [4, 5, 6]])
y:
tensor([[1, 4],
        [2, 5],
        [3, 6]])

  • transpose(): 对张量进行转置操作,但只支持两个维度转置。
  • Conv2d(): 创建一个卷积层 nn.Conv2d(in_planes, out_planes, kernel_size=3, stride=stride, padding=1, bias=False) kernel_size是卷积核,stride是步长,padding是填充,bias是启用偏置项。
  • BatchNorm2d():创建一个归一化层,用于二维卷积层的输出,通常放置在卷积层之后,激活函数之前。
  • Sequential(): 容器模型,存放顺序的神经网络块。
  • relu(): 是一个激活函数,=max(0,x)
  • Linear(): 创建一个全连接层
  • sigmoid():是一个激活函数, = 1/(1+ exp(-1)),exp是自然常数e为底的指数函数
  • avg_pool2d(): 是一个二维平均池化层,用于降低特征图的空间维度
  • models.vgg16(): 加载一个预训练的VGG-16模型参数
  • tensor(): 创建张量
  • to(): 将张量移动到设备进行运算
  • device(): 指定设备
  • repeat():复制张量,接受一个表示重复次数的参数,用于沿指定的维度对张量进行复制。它可以将张量在指定维度上扩展为更大的尺寸。
  • resize(): 调整张量大小,改变张量的形状、尺寸或维度。
#调整张量大小
x = torch.randn(2, 3, 4)  # 创建一个2x3x4的张量
y = x.resize(2, 12)  # 调整为2行12列的张量
#调整张量尺寸
x = torch.randn(2, 3, 4)  # 创建一个2x3x4的张量
y = x.resize((3, 2, 2))  # 调整为3x2x2的张量
  • cat(): 接受一个包含要连接的张量的列表,并指定连接的维度。它会沿着指定的维度将张量连接起来,生成一个新的张量。
  • weightNorm(): 归一化方法,调整权重的标准差,并将权重归一化到单位范数(即权重向量的L2范数为1)。
  • Parameter():是一种特殊的tensor,表示模型的可学习参数。
  • ones(): 创建一个元素都为1的张量
  • zeros(): 创建一个元素都为0的张量
  • no_grad(): 关闭计算梯度,提高计算效率
  • stack():在新的维度堆叠给定的张量序列
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
result = torch.stack((a, b))

tensor([[1, 2, 3],
        [4, 5, 6]])
-------------------------------
a = torch.tensor([[1, 2, 3], [4, 5, 6]])
b = torch.tensor([[7, 8, 9], [10, 11, 12]])
result = torch.stack((a, b))

tensor([[[ 1,  2,  3],
         [ 4,  5,  6]],

        [[ 7,  8,  9],
         [10, 11, 12]]])
-------------------------------      
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
result = torch.stack((a, b), dim=1)

tensor([[1, 4],
        [2, 5],
        [3, 6]])
  • save(): 保存模型、张量(模型,"文件名")
  • load(): 加载模型、张量
  • randn_like(): 生成与指定张量具有相同形状的随机数张量。
  • PixelShuffle(): 像素混洗,提高图片分辨率。
  • linspace(): 生成在指定范围内均匀分布的一维数组(向量)。
  • round(): 对输入的数字进行四舍五入
  • Identity():特殊的激活函数,将输入值直接作为输出值返回,没有经过额外的激活函数处理。
  • Dropout(): 随机丢弃,提高模型的泛用性。