예제 #1
0
         # 记录下验证集精度
         if val_loss < best_loss:
             best_epoch, best_loss = epoch, val_loss
             # 保存model可学习参数
             torch.save(model.state_dict(), 'Model/model.pt')
         # 打印相关信息
         Tools.printInfo(epoch, train_loss, val_loss, best_epoch, best_loss)
 else:
     # 预测过程
     test_path, test_label = Tools.dataFromPath(test_img_path)
     test_dataset = SVHNDataset(
         test_path, test_label,
         transforms.Compose([
             transforms.Resize((64, 128)),
             transforms.ColorJitter(0.3, 0.3, 0.2),
             transforms.RandomRotation(5),
             transforms.ToTensor(),
             transforms.Normalize([0.485, 0.456, 0.406],
                                  [0.229, 0.224, 0.225])
         ]))
     test_loader = torch.utils.data.DataLoader(
         test_dataset,
         batch_size=batch_size,
         shuffle=False,
         num_workers=5,
     )
     model = SVHN_Model1()
     model.load_state_dict(torch.load("Model/model.pt", map_location='cpu'))
     pred_labels = model.myPredicting(test_loader)
     Tools.submit(demo_submit_path, pred_labels)