Beispiel #1
0
    nn.MaxPool2d(2, 2),
    FlattenLayer(),
    nn.Linear(16 * 4 * 4, 120),
    nn.BatchNorm1d(120),
    nn.Sigmoid(),
    nn.Linear(120, 84),
    nn.BatchNorm1d(84),
    nn.Sigmoid(),
    nn.Linear(84, 10))

if __name__ == '__main__':
    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
    net = LeNet()
    print(net)
    batch_size = 256
    train_iter, test_iter = fashion_mnist.load_data_fashion_mnist(
        batch_size=batch_size)

    lr = 0.001
    num_epochs = 5
    optimizer = torch.optim.Adam(net.parameters(), lr=lr)
    trainer.train(net, train_iter, test_iter, batch_size, optimizer, device,
                  num_epochs)

    print("-" * 42)
    print(lenet_bn)
    optimizer = torch.optim.Adam(lenet_bn.parameters(), lr=lr)
    train_iter, test_iter = fashion_mnist.load_data_fashion_mnist(
        batch_size=batch_size)
    trainer.train(lenet_bn, train_iter, test_iter, batch_size, optimizer,
                  device, num_epochs)
Beispiel #2
0
net = nn.Sequential(
    nin_block(1, 96, kernel_size=11, stride=4, padding=0),
    nn.MaxPool2d(kernel_size=3, stride=2),
    nin_block(96, 256, kernel_size=5, stride=1, padding=2),
    nn.MaxPool2d(kernel_size=3, stride=2),
    nin_block(256, 384, 3, 1, 1),
    nn.MaxPool2d(3, 2),
    nn.Dropout(0.5),
    # 标签类别数是10
    nin_block(384, 10, 3, 1, 1),
    GlobalAvgPool2d(),
    FlattenLayer()
)

if __name__ == '__main__':
    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
    print(net)
    X = torch.rand(1, 1, 224, 224)
    for name, blk in net.named_children():
        X = blk(X)
        print(name, 'output shape:', X.shape)

    batch_size = 128
    # 如出现“out of memory”的报错信息,可减小batch_size或resize
    train_iter, test_iter = fashion_mnist.load_data_fashion_mnist(batch_size, resize=224)

    lr, num_epochs = 0.001, 5
    optimizer = torch.optim.Adam(net.parameters(), lr=lr)
    trainer.train(net, train_iter, test_iter, batch_size, optimizer, device, num_epochs)