Example #1
0
                  'cuda',
                  batch_size=batch_size,
                  save_path=base_path)

data_path_root_test = pathlib.Path('test/')
test_anno = pd.DataFrame({
    'id': [f'pic{num:06}' for num in range(10699)],
    'category': [0 for num in range(10699)]
})
test_dataset = MyDataset(data_dir=data_path_root_test,
                         data_anno=test_anno,
                         phase='train')
test_dataloader = DataLoader(test_dataset,
                             batch_size=batch_size,
                             shuffle=False,
                             num_workers=0)
all_preds_list = []
for i in range(7):
    all_preds_list.append(
        trainer.predict(test_dataloader, labels=True).flatten())
print((all_preds_list[0] != all_preds_list[1]).mean())
val, count = mode(all_preds_list, axis=0)
preds = val.ravel().tolist()
submit = pd.DataFrame({
    'id': [f'pic{num:06}' for num in range(10699)],
    'category': [TRAFFIC_LABELS[pred] for pred in preds]
})

submit.to_csv(base_path / 'submit_tta.csv', index=False)
print('Done')
Example #2
0
    criterion = nn.CrossEntropyLoss()

    # Scheduler
    scheduler = torch.optim.lr_scheduler.OneCycleLR(optimizer, max_lr=1.5 * 1e-3, steps_per_epoch=len(train_dataloader),
                                                    epochs=num_epochs)

    # Training
    # optim_gen = lambda parameters, lr: SGD(parameters, lr=lr)
    # find_lr(model, optim_gen, min_lr, max_lr, num_epochs, train_dataloader, val_dataloader, criterion, device, batch_size,
    #         batches_per_epoch, comet_experiment)
    save_path = pathlib.Path('models') / name
    save_path.mkdir(parents=True, exist_ok=True)
    trainer = Trainer(model, train_dataloader, val_dataloader, criterion, optimizer, None, device, TRAFFIC_LABELS,
                      num_epochs, batch_size, batches_per_epoch, comet_experiment, save_path)
    try:
        trainer.fit()
    except KeyboardInterrupt:
        pass

    # Prediction
    data_path_root_test = pathlib.Path('test/')
    test_anno = pd.DataFrame({'id': [f'pic{num:06}' for num in range(10699)]})
    test_dataset = MyDataset(data_dir=data_path_root_test, data_anno=test_anno, phase='test')
    test_dataloader = DataLoader(test_dataset, batch_size=batch_size, shuffle=False, num_workers=0)
    preds = trainer.predict(test_dataloader)
    submit = pd.DataFrame({'id': [f'pic{num:06}' for num in range(10699)],
                           'category': [TRAFFIC_LABELS[pred] for pred in preds]})
    submit.to_csv(save_path / 'submit.csv')

    print('Done')