- import torch.nn as nn
-
- model = nn.Sequential(
- nn.Conv2d(in_channels=3, out_channels=16, kernel_size=3, padding=1),
- nn.BatchNorm2d(16),
- nn.ReLU(inplace=True),
- nn.MaxPool2d(2, 2)
- )
- print(model)
- print(model[0])
- '''运行结果为
- Sequential(
- (0): Conv2d(3, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
- (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
- (2): ReLU(inplace=True)
- (3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
- )
- Conv2d(3, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
- '''
这种添加方式,虽然加入了名称,但是仍然只支持下标索引访问
model[0] 是正确的
model["conv1"] 是错误的
- model = nn.Sequential(
- OrderedDict([("conv1", nn.Conv2d(in_channels=3, out_channels=16, kernel_size=3, padding=1)),
- ("bn1", nn.BatchNorm2d(16)),
- ("relu1", nn.ReLU(inplace=True)),
- ("maxpool", nn.MaxPool2d(2, 2))])
- )
- print(model)
- print(model[0])
- """
- Sequential(
- (conv1): Conv2d(3, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
- (bn1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
- (relu1): ReLU(inplace=True)
- (maxpool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
- )
- Conv2d(3, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
- """
- model=nn.Sequential()
- model.add_module("conv1",nn. Conv2d(3, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)))
- model.add_module("bn1",nn.BatchNorm2d(16))
- model.add_module("relu1",nn.ReLU(inplace=True))
- model.add_module("maxpool",nn.MaxPool2d(2, 2))
- print(model)
- print(model[0])