Example #1
0
    if args.train == 'rlspeaker':
        speaker.train(train_tuple, valid_tuple, args.epochs, rl=True)
    elif args.train == 'validspeaker':
        scores, result = speaker.evaluate(valid_tuple)
        print(scores)
    elif args.train == 'testspeaker':
        test_tuple = get_tuple(args.dataset, 'test', shuffle=False, drop_last=False)
        scores, result = speaker.evaluate(test_tuple)
        print("Test:")
        print("Have result for %d data" % len(result))
        print(scores)
        import json
        json.dump(result, open("test_result.json", 'w'))
elif 'nlvr' in args.train:
    train_tuple = get_tuple(args.dataset, 'train', task='nlvr', shuffle=False, drop_last=True)
    valid_tuple = get_tuple(args.dataset, 'valid', task='nlvr', shuffle=False, drop_last=False)
    listener = Listener(train_tuple[0])
    if args.load is not None:
        listener.load(args.load)
    if args.train == 'nlvr':
        listener.train(train_tuple, valid_tuple, args.epochs)
    elif args.train == 'validnlvr':
        listener.evaluate(valid_tuple)
    elif args.train == 'snlvr':
        true_speaker = Speaker(train_tuple[0])   # [0] is the dataset
        if args.true_speaker is not None:
            print("Load speaker from %s." % args.load)
            true_speaker.load(args.true_speaker)
        listener = Listener(train_tuple[0], true_speaker=true_speaker)
        listener.speaker_evaluate(valid_tuple)