model = EquiSeq2Seq(input_symmetry_group=input_symmetry_group,
                        output_symmetry_group=output_symmetry_group,
                        input_language=equivariant_commands,
                        encoder_hidden_size=experiment_arguments.hidden_size,
                        decoder_hidden_size=experiment_arguments.hidden_size,
                        output_language=equivariant_actions,
                        layer_type=experiment_arguments.layer_type,
                        use_attention=experiment_arguments.use_attention,
                        bidirectional=experiment_arguments.bidirectional)

    # Move model to device and load weights
    model.to(device)
    model.load_state_dict(torch.load(model_path))

    # Convert data to torch tensors
    training_eval = [tensors_from_pair(pair, equivariant_commands, equivariant_actions) for pair in train_pairs]
    testing_pairs = [tensors_from_pair(pair, equivariant_commands, equivariant_actions) for pair in test_pairs]

    # Compute accuracy and print some translation
    if args.compute_train_accuracy:
        train_acc = test_accuracy(model, training_eval)
        print("Model train accuracy: %s" % train_acc.item())
    if args.compute_test_accuracy:
        test_acc = test_accuracy(model, testing_pairs)
        print("Model test accuracy: %s" % test_acc.item())
    if args.print_param_nums:
        print("Model contains %s params" % model.num_params)
    for i in range(args.print_translations):
        pair = random.choice(test_pairs)
        print('>', pair[0])
        print('=', pair[1])
示例#2
0
    model = EquiSeq2Seq(input_symmetry_group=input_symmetry_group,
                        output_symmetry_group=output_symmetry_group,
                        input_language=equivariant_commands,
                        encoder_hidden_size=experiment_arguments.hidden_size,
                        decoder_hidden_size=experiment_arguments.hidden_size,
                        output_language=equivariant_actions,
                        layer_type=experiment_arguments.layer_type,
                        use_attention=experiment_arguments.use_attention,
                        bidirectional=experiment_arguments.bidirectional)

    # Move model to device and load weights
    model.to(device)
    model.load_state_dict(torch.load(model_path))

    # Convert data to torch tensors
    training_eval = [tensors_from_pair(pair, equivariant_commands, equivariant_actions) 
                     for pair in train_pairs]
    testing_pairs = [tensors_from_pair(pair, equivariant_commands, equivariant_actions) 
                     for pair in test_pairs]

    # Compute accuracy and print some translation
    if args.compute_train_accuracy:
        train_acc = test_accuracy(model, training_eval)
        print("Model train accuracy: %s" % train_acc.item())
    if args.compute_test_accuracy:
        test_acc = test_accuracy(model, testing_pairs)
        print("Model test accuracy: %s" % test_acc.item())
    if args.print_param_nums:
        print("Model contains %s params" % model.num_params)
    for i in range(args.print_translations):
        pair = random.choice(test_pairs)
示例#3
0
    model.to(device)

    # Initialize optimizers
    encoder_optimizer = torch.optim.Adam(model.encoder.parameters(),
                                         lr=args.learning_rate)
    decoder_optimizer = torch.optim.Adam(model.decoder.parameters(),
                                         lr=args.learning_rate)

    # Split off validation set
    val_size = int(len(train_pairs) * args.validation_size)
    random.shuffle(train_pairs)
    train_pairs, val_pairs = train_pairs[val_size:], train_pairs[:val_size]

    # Convert data to torch tensors
    training_pairs = [
        tensors_from_pair(random.choice(train_pairs), commands, actions)
        for i in range(args.n_iters)
    ]
    training_eval = [
        tensors_from_pair(pair, commands, actions) for pair in train_pairs
    ]
    validation_pairs = [
        tensors_from_pair(pair, commands, actions) for pair in val_pairs
    ]
    testing_pairs = [
        tensors_from_pair(pair, commands, actions) for pair in test_pairs
    ]

    # Initialize criterion
    criterion = nn.NLLLoss().to(device)
示例#4
0
                        output_symmetry_group=output_symmetry_group,
                        input_language=equivariant_eng,
                        encoder_hidden_size=experiment_arguments.hidden_size,
                        decoder_hidden_size=experiment_arguments.hidden_size,
                        output_language=equivariant_fra,
                        layer_type=experiment_arguments.layer_type,
                        use_attention=experiment_arguments.use_attention,
                        bidirectional=experiment_arguments.bidirectional)

    # Move model to device and load weights
    model.to(device)
    model.load_state_dict(torch.load(model_path))

    # Convert data to torch tensors
    training_eval = [
        tensors_from_pair(pair, equivariant_eng, equivariant_fra)
        for pair in train_pairs
    ]
    testing_pairs = [
        tensors_from_pair(pair, equivariant_eng, equivariant_fra)
        for pair in test_pairs
    ]

    if experiment_arguments.split in ["add_book", "add_house"]:
        new_prim_training_pairs = [
            tensors_from_pair(new_prim_pair, equivariant_eng, equivariant_fra)
        ]
        num_new_prim_pairs = int(args.p_new_prim * len(training_eval))
        new_prim_training_pairs = new_prim_training_pairs * num_new_prim_pairs
        model = train_new_prim(model, new_prim_training_pairs,
                               experiment_arguments)
示例#5
0
        encoder_hidden_size=experiment_arguments.hidden_size,
        decoder_hidden_size=experiment_arguments.semantic_size,
        output_language=fra_lang,
        layer_type=experiment_arguments.layer_type,
        use_attention=experiment_arguments.use_attention,
        drop_rate=experiment_arguments.drop_rate,
        bidirectional=experiment_arguments.bidirectional,
        num_layers=experiment_arguments.num_layers)

    # Move model to device and load weights
    model.to(device)
    model.load_state_dict(torch.load(model_path))

    # Convert data to torch tensors
    training_eval = [
        tensors_from_pair(pair, eng_lang, fra_lang) for pair in train_pairs
    ]
    testing_pairs = [
        tensors_from_pair(pair, eng_lang, fra_lang) for pair in test_pairs
    ]

    if experiment_arguments.split in ["add_book", "add_house"]:
        num_new_prim_pairs = int(args.p_new_prim * len(training_eval))
        new_prim_training_pairs = [
            tensors_from_pair(new_prim_pair, eng_lang, fra_lang)
        ] * num_new_prim_pairs
        model = train_new_prim(model, new_prim_training_pairs,
                               experiment_arguments)

    # Compute accuracy and print some translations
    if args.compute_train_accuracy:
    # Initialize optimizers
    encoder_optimizer = torch.optim.Adam(model.encoder.parameters(),
                                         lr=args.learning_rate,
                                         weight_decay=args.weight_decay)
    decoder_optimizer = torch.optim.Adam(model.decoder.parameters(),
                                         lr=args.learning_rate,
                                         weight_decay=args.weight_decay)

    # Split off validation set
    val_size = int(len(train_pairs) * args.validation_size)
    random.shuffle(train_pairs)
    train_pairs, val_pairs = train_pairs[val_size:], train_pairs[:val_size]

    # Convert data to torch tensors
    training_pairs = [
        tensors_from_pair(random.choice(train_pairs), equivariant_commands,
                          equivariant_actions) for i in range(args.n_iters)
    ]
    training_eval = [
        tensors_from_pair(pair, equivariant_commands, equivariant_actions)
        for pair in train_pairs
    ]
    validation_pairs = [
        tensors_from_pair(pair, equivariant_commands, equivariant_actions)
        for pair in val_pairs
    ]
    testing_pairs = [
        tensors_from_pair(pair, equivariant_commands, equivariant_actions)
        for pair in test_pairs
    ]

    # Initialize criterion
示例#7
0
    # Initialize optimizers
    encoder_optimizer = torch.optim.Adam(model.encoder.parameters(),
                                         lr=args.learning_rate,
                                         weight_decay=args.weight_decay)
    decoder_optimizer = torch.optim.Adam(model.decoder.parameters(),
                                         lr=args.learning_rate,
                                         weight_decay=args.weight_decay)

    # Split off validation set
    val_size = int(len(train_pairs) * args.validation_size)
    random.shuffle(train_pairs)
    train_pairs, val_pairs = train_pairs[val_size:], train_pairs[:val_size]

    # Convert data to torch tensors
    training_pairs = [
        tensors_from_pair(random.choice(train_pairs), eng_lang, fra_lang)
        for i in range(args.n_iters)
    ]
    training_eval = [
        tensors_from_pair(pair, eng_lang, fra_lang) for pair in train_pairs
    ]
    validation_pairs = [
        tensors_from_pair(pair, eng_lang, fra_lang) for pair in val_pairs
    ]
    testing_pairs = [
        tensors_from_pair(pair, eng_lang, fra_lang) for pair in test_pairs
    ]

    # Initialize criterion
    criterion = nn.NLLLoss().to(device)
示例#8
0
    # Initialize optimizers
    encoder_optimizer = torch.optim.Adam(model.encoder.parameters(),
                                         lr=args.learning_rate,
                                         weight_decay=args.weight_decay)
    decoder_optimizer = torch.optim.Adam(model.decoder.parameters(),
                                         lr=args.learning_rate,
                                         weight_decay=args.weight_decay)

    # Split off validation set
    val_size = int(len(train_pairs) * args.validation_size)
    random.shuffle(train_pairs)
    train_pairs, val_pairs = train_pairs[val_size:], train_pairs[:val_size]

    # Convert data to torch tensors
    training_pairs = [tensors_from_pair(random.choice(train_pairs), 
                                        equivariant_commands, 
                                        equivariant_actions)
                      for i in range(args.n_iters)]
    training_eval = [tensors_from_pair(pair, equivariant_commands, equivariant_actions) 
                     for pair in train_pairs]
    validation_pairs = [tensors_from_pair(pair, equivariant_commands, equivariant_actions) 
                        for pair in val_pairs]
    testing_pairs = [tensors_from_pair(pair, equivariant_commands, equivariant_actions) 
                     for pair in test_pairs]

    # Initialize criterion
    criterion = nn.NLLLoss().to(device)

    # Initialize printing / plotting variables
    plot_losses = []
    print_loss_total = 0
示例#9
0
                         output_language=actions,
                         layer_type=args.layer_type,
                         use_attention=args.use_attention,
                         drop_rate=args.drop_rate,
                         bidirectional=args.bidirectional,
                         num_layers=args.num_layers)
    model.to(device)
    # Initialize optimizers
    encoder_optimizer = torch.optim.Adam(model.encoder.parameters(),
                                         lr=args.learning_rate)
    decoder_optimizer = torch.optim.Adam(model.decoder.parameters(),
                                         lr=args.learning_rate)

    # Convert data to torch tensors
    training_triplets = [
        tensors_from_pair(random.choice(train_pairs), commands, actions,
                          commands_syntax) for i in range(args.n_iters)
    ]
    training_eval = [
        tensors_from_pair(pair, commands, actions, commands_syntax)
        for pair in train_pairs
    ]
    testing_pairs = [
        tensors_from_pair(pair, commands, actions, commands_syntax)
        for pair in test_pairs
    ]

    # Initialize criterion
    criterion = nn.NLLLoss().to(device)

    # Initialize printing / plotting variables
    plot_losses = []
        encoder_hidden_size=experiment_arguments.hidden_size,
        decoder_hidden_size=experiment_arguments.semantic_size,
        output_language=actions,
        layer_type=experiment_arguments.layer_type,
        use_attention=experiment_arguments.use_attention,
        drop_rate=experiment_arguments.drop_rate,
        bidirectional=experiment_arguments.bidirectional,
        num_layers=experiment_arguments.num_layers)

    # Move model to device and load weights
    model.to(device)
    model.load_state_dict(torch.load(model_path))

    # Convert data to torch tensors
    training_eval = [
        tensors_from_pair(pair, commands, actions, commands_syntax)
        for pair in train_pairs
    ]
    testing_pairs = [
        tensors_from_pair(pair, commands, actions, commands_syntax)
        for pair in test_pairs
    ]

    # Compute accuracy and print some translations
    if args.compute_train_accuracy:
        train_acc = test_accuracy(model, training_eval)
        print("Model train accuracy: %s" % train_acc.item())
    if args.compute_test_accuracy:
        test_acc = test_accuracy(model, testing_pairs)
        print("Model test accuracy: %s" % test_acc.item())
    if args.print_param_nums:
    model = BasicSeq2Seq(input_language=commands,
                         encoder_hidden_size=experiment_arguments.hidden_size,
                         decoder_hidden_size=experiment_arguments.semantic_size,
                         output_language=actions,
                         layer_type=experiment_arguments.layer_type,
                         use_attention=experiment_arguments.use_attention,
                         drop_rate=experiment_arguments.drop_rate,
                         bidirectional=experiment_arguments.bidirectional,
                         num_layers=experiment_arguments.num_layers)

    # Move model to device and load weights
    model.to(device)
    model.load_state_dict(torch.load(model_path))

    # Convert data to torch tensors
    training_eval = [tensors_from_pair(pair, commands, actions) 
                     for pair in train_pairs]
    testing_pairs = [tensors_from_pair(pair, commands, actions) 
                     for pair in test_pairs]

    # Compute accuracy and print some translations
    if args.compute_train_accuracy:
        train_acc = test_accuracy(model, training_eval)
        print("Model train accuracy: %s" % train_acc.item())
    if args.compute_test_accuracy:
        test_acc = test_accuracy(model, testing_pairs)
        print("Model test accuracy: %s" % test_acc.item())
    if args.print_param_nums:
        print("Model contains %s params" % model.num_params)
    for i in range(args.print_translations):
        pair = random.choice(test_pairs)