个人技术分享

torch.nn.ReplicationPad1d(padding)
  • 在 PyTorch 中,ReplicationPad1d 是一种用于一维数据的填充层
  • 该层通过复制序列的边缘值来增加数据的长度,这在卷积神经网络中常用于保持数据尺寸
  • 主要参数
padding

可以是一个整数或一个元组。

  • 如果是一个整数,它表示在序列的每一端都填充相同数量的值。
  • 如果是一个元组 (pad_left, pad_right),则分别在序列的左边和右边填充指定数量的值
  • 工作原理:

    • 假设有一个序列 [a, b, c, d],并且设置 padding=(2, 3),那么填充后的序列将是 [a, a, a, b, c, d, d, d, d]。

    • 这里,左边的 a 被复制了两次,右边的 d 被复制了三次。

  • 举例:

import torch
import torch.nn as nn

# 创建一维数据
data = torch.tensor([1, 2, 3, 4], dtype=torch.float32).unsqueeze(0).unsqueeze(0)  # shape: [1, 1, 4]

data,data.shape
#(tensor([[[1., 2., 3., 4.]]]), torch.Size([1, 1, 4]))




pad = nn.ReplicationPad1d((2, 3))

# 应用填充
padded_data = pad(data)

print(padded_data) 
#tensor([[[1., 1., 1., 2., 3., 4., 4., 4., 4.]]])