示例#1
0
    transform=train_transform,
    test_transform=test_transform,
)
ds_test = CIFAR10(data_home, train=False, download=True, transform=test_transform)

net = LeNet5()
# net = efficientnet_b0(num_classes=10, dropout=0.3, drop_connect=0.2)
criterion = nn.CrossEntropyLoss()
optimizer = SGD(net.parameters(), lr=0.01, momentum=0.9, weight_decay=1e-4, nesterov=True)
lr_scheduler = CosineAnnealingLR(optimizer, 100, eta_min=1e-3, warmup=5, warmup_eta_min=1e-3)


metrics = {
    'loss': TrainLoss(),
    'acc': Accuracy(),
}

trainer = Trainer(net, criterion, optimizer, lr_scheduler,
                  metrics=metrics, save_path="./checkpoints", name="CIFAR10-EfficientNet")

# summary(net, (3, 32, 32))

train_loader = DataLoader(ds_train, batch_size=128, shuffle=True, num_workers=2, pin_memory=True)
test_loader = DataLoader(ds_test, batch_size=128)
val_loader = DataLoader(ds_val, batch_size=128)

trainer.fit(train_loader, 630, val_loader=val_loader,
            save=Save.ByMetric("-val_loss", patience=600),
            callbacks=[print_lr])

trainer.evaluate(test_loader)
lr_scheduler = CosineAnnealingLR(optimizer, T_max=10, eta_min=0.001)

metrics = {
    'loss': TrainLoss(),
    'acc': Accuracy(),
}

test_metrics = {
    'loss': Loss(criterion),
    'acc': Accuracy(),
}

trainer = Trainer(net,
                  criterion,
                  optimizer,
                  lr_scheduler,
                  metrics=metrics,
                  save_path="./checkpoints",
                  name="MNIST-LeNet5")

summary(net, (1, 32, 32))

train_loader = DataLoader(ds_train,
                          batch_size=128,
                          shuffle=True,
                          num_workers=2,
                          pin_memory=True)
test_loader = DataLoader(ds_test, batch_size=128)
val_loader = DataLoader(ds_val, batch_size=128)

trainer.fit(train_loader, 10, val_loader=val_loader)