Пример #1
0
           'Garant-Ecological-Medium-Fat-Milk',
           'Garant-Ecological-Standard-Milk', 'God-Morgon-Apple-Juice',
           'God-Morgon-Orange-Juice', 'God-Morgon-Orange-Red-Grapefruit-Juice',
           'God-Morgon-Red-Grapefruit-Juice', 'Oatly-Natural-Oatghurt',
           'Oatly-Oat-Milk', 'Tropicana-Apple-Juice',
           'Tropicana-Golden-Grapefruit', 'Tropicana-Juice-Smooth',
           'Tropicana-Mandarin-Morning', 'Valio-Vanilla-Yoghurt',
           'Yoggi-Strawberry-Yoghurt', 'Yoggi-Vanilla-Yoghurt')

#resume일 경우?
model = fineTuningModel(args.model, len(classes), args.freeze,
                        True)  #is freeze, pretrained 넣어주기
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(),
                      lr=args.lr,
                      momentum=0.9,
                      weight_decay=5e-4)
exp_lr_scheduler = torch.optim.lr_scheduler.StepLR(optimizer,
                                                   step_size=30,
                                                   gamma=0.1)
#그냥 트레인으로만들자..  early stopping 넣어서
#해야할거 validation set만들기 그리고 train에 early stopping 하기.
# train때 load state dict하기

trained_model = train(model, train_loader, criterion, optimizer,
                      exp_lr_scheduler, device, len(train_dataset),
                      len(valid_dataset), args.epoch)
test_model = Test(trained_model, test_loader, len(test_dataset))
test_model.OverallAccuracy()
test_model.ClassAccuracy(classes)