예제 #1
0
    for key in testset.spk2label:
        idx_to_class[str(testset.spk2label[key].squeeze().item())] = key
    print(idx_to_class, '\n')

    ckpt = torch.load(args.cp_path, map_location=lambda storage, loc: storage)

    if args.model == 'cnn':
        model = base_cnn.CNN(n_classes=args.nclasses)
    elif args.model == 'vgg':
        model = vgg.VGG('VGG11', n_classes=args.nclasses)
    elif args.model == 'resnet':
        model = resnet.ResNet12(n_classes=args.nclasses)
    elif args.model == 'densenet':
        model = densenet.DenseNet121(n_classes=args.nclasses)
    elif args.model == 'tdnn':
        model = TDNN.TDNN(n_classes=args.nclasses)

    try:
        print(model.load_state_dict(ckpt['model_state'], strict=True))
        print('\n')
    except RuntimeError as err:
        print("Runtime Error: {0}".format(err))
    except:
        print("Unexpected error:", sys.exc_info()[0])
        raise

    print('\n\nNumber of parameters: {}\n'.format(
        sum(p.numel() for p in model.parameters())))

    if args.cuda:
        device = get_freer_gpu()
예제 #2
0
def main():
    # init log
    log_dir = os.path.join('checkpoint', data_configs.speaker)
    infolog.init(os.path.join(log_dir, 'Terminal_train_log'),
                 model_configs.model_name, None)
    # train model
    if model_configs.model_name == 'TDNN':
        model = TDNN(data_configs, model_configs, training_configs)
        model.initialize()
        model.train()
    elif model_configs.model_name == 'TDNN_LSTM':
        model = TDNN_LSTM(data_configs, model_configs, training_configs)
        model.initialize()
        model.train()