N1H111SM's Miniverse

Pytorch - CNNs

字数统计: 217阅读时长: 1 min
2020/05/28 Share

Materials

Functions

torch.nn.Conv2d

1
2
3
4
5
6
7
8
9
10
11
torch.nn.Conv2d(
in_channels,
out_channels,
kernel_size,
stride=1,
padding=0,
dilation=1,
groups=1,
bias=True,
padding_mode='zeros'
)

Pytorch和tensorflow中(也和我们一般理解的)的图像表示形式不同:torch中的channel维在height和width之前,所以input的tensor形状为$(N,C_{\text{in}}, H, W)$.

torch.nn.ZeroPad2d

在二维Tensor的左右上下四个方向添加zero-padding.

1
2
pad = nn.ZeroPad2d(padding=(1, 2, 3, 4))
y = pad(x)

torchvision.transforms.Pad

有的时候我们希望对于数据的处理都封装在load_data这一层中,所以我们希望能够使用torchvision里的transform.Compose. 以下展示了将MNIST上(1, 28, 28)的数据转换为能够匹配用于CIFAR-10的DCGAN架构的代码。注意Pad需要在ToTensor()层前,因为该方法适配于PIL Image对象而不是Tensor对象。

1
2
3
transform = transforms.Compose([transforms.Pad(padding=(2,2,2,2), fill=0),
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,))])
CATALOG
  1. 1. Functions
    1. 1.0.1. torch.nn.Conv2d
    2. 1.0.2. torch.nn.ZeroPad2d
    3. 1.0.3. torchvision.transforms.Pad