param.requires_grad = False
    for param in model.resnet.parameters():
        param.requires_grad = False
else:
    print_log('\n\nno freezing', log=args.logfile)

print_log('loading data', log=args.logfile)
if args.train: trainer = Trainer(args)
if args.val: validator = Validator(args)

if args.train:
    loss_history_train, loss_history_val = [], []
    accu_history_train, accu_history_val = [], []
    for epoch in range(args.start_epoch, args.end_epoch):
        loss_train, accu_train = trainer.epoch(model, epoch)
        if args.val: loss_val, accu_val = validator.epoch(model, epoch)

        # plot figure
        loss_history_train.append([loss_train])
        loss_history_val.append([loss_val])
        accu_history_train.append([accu_train])
        accu_history_val.append([accu_val])
        plot_loss(loss_history_train, loss_history_val, save_dir=args.save_dir)
        plot_accu(accu_history_train, accu_history_val, save_dir=args.save_dir)

if args.test:
    tester = Tester(args)
    tester.epoch(model)
    if args.val: validator.epoch(model, epoch=0)

args.logfile.close()
Beispiel #2
0
        model = LipRead(options)
        load_model(model, state_dict, grad_states) # load weights and freeze states
        last_epoch = states["epoch"]

    
    # save current options
    with open(os.path.join(result_dir, "options_used.toml"), 'w') as f:
        toml.dump(options, f)


    if(options["general"]["usecudnnbenchmark"] and options["general"]["usecudnn"]):
        print("Running cudnn benchmark...")
        torch.backends.cudnn.benchmark = True


    if options["training"]["train"]:
        trainer = Trainer(options)
    if(options["validation"]["validate"]):
        validator = Validator(options, result_dir)


    final_epoch = args.final_epoch if args.final_epoch is not None else options["training"]["epochs"]
    for epoch in range(last_epoch + 1, final_epoch):
        loss = trainer.epoch(model, epoch) if options["training"]["train"] else ''
        accuracy = validator.epoch(model, epoch) if options["validation"]["validate"] else ''
        csv.add(epoch, accuracy=accuracy, loss=loss)
        save_checkpoint(result_dir, epoch, model, options=options)

    # save the final model 
    torch.save(model.state_dict(), os.path.join(result_dir, "epoch{}.pt".format(epoch)))
print_log('creating the model', log=options["general"]["logfile"])
model = LipRead(options)

print_log('loading model', log=options["general"]["logfile"])
if options["general"]["loadpretrainedmodel"]:
    print_log('loading the pretrained model at %s' %
              options["general"]["pretrainedmodelpath"],
              log=options["general"]["logfile"])
    model.load_state_dict(torch.load(
        options["general"]["pretrainedmodelpath"]))  #Create the model.
if options["general"]["usecudnn"]:
    model = model.cuda(
        options["general"]["gpuid"])  #Move the model to the GPU.

print_log('loading data', log=options["general"]["logfile"])
if options["training"]["train"]: trainer = Trainer(options)
if options["validation"]["validate"]:
    validator = Validator(options)
    validator.epoch(model, epoch=0)

if options["training"]["train"]:
    for epoch in range(options["training"]["startepoch"],
                       options["training"]["endepoch"]):
        trainer.epoch(model, epoch)
        if options["validation"]["validate"]: validator.epoch(model, epoch)
    # if options["testing"]["test"]:
    # 	tester = Tester(options)
    # 	tester.epoch(model)

options["general"]["logfile"].close()
if (options["general"]["usecudnnbenchmark"]
        and options["general"]["usecudnn"]):
    print("Running cudnn benchmark...")
    torch.backends.cudnn.benchmark = True

#Create the model.
model = LipRead(options)

if (options["general"]["loadpretrainedmodel"]):
    model.load_state_dict(
        torch.load(options["general"]["pretrainedmodelpath"],
                   map_location=lambda storage, loc: storage))
#model = torch.load('/home/admin2/grp7/Lipreading-PyTorch/trainedmodel.pt',map_location=lambda storage, loc: storage)
#Move the model to the GPU.
if (options["general"]["usecudnn"]):
    model = model.cuda(options["general"]["gpuid"])
#if(options["general"]["usecudnn"]):
#   model = model.cuda(options["general"]["gpuid"])
#self.model = model.CPU().double()
trainer = Trainer(options)
validator = Validator(options)

for epoch in range(options["training"]["startepoch"],
                   options["training"]["epochs"]):

    if (options["training"]["train"]):
        trainer.epoch(model, epoch)

    if (options["validation"]["validate"]):
        validator.epoch(model)