Files
Ralph Tang e4149ff400 Use PackedSequence for ConvRNN (#126)
* Use PackedSequence in ConvRNNs instead
- Zero-padding is incompatible with the current model

* Update test script

* Clean up comments and logic

* Add TQDM to requirements

* Add results using default hyperparameters
2018-06-24 09:48:16 -04:00

37 lines
1.2 KiB
Python

import argparse
import os
import random
import numpy as np
import torch
import torch.nn as nn
import torch.utils as utils
import data
import model
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--no_cuda", action="store_true", default=False)
parser.add_argument("--input_file", default="saves/model.pt", type=str)
parser.add_argument("--data_dir", default="data", type=str)
parser.add_argument("--gpu_number", default=0, type=int)
args = parser.parse_args()
conv_rnn = torch.load(args.input_file)
if not args.no_cuda:
torch.cuda.set_device(args.gpu_number)
conv_rnn.cuda()
_, _, test_set = data.SSTDataset.load_sst_sets("data")
test_loader = utils.data.DataLoader(test_set, batch_size=len(test_set), collate_fn=conv_rnn.convert_dataset)
conv_rnn.eval()
for test_in, test_out in test_loader:
scores = conv_rnn(*test_in)
n_correct = (torch.max(scores, 1)[1].view(-1).data == test_out.data).float().sum()
accuracy = n_correct / len(test_set)
print("Test set accuracy: {}".format(accuracy))
if __name__ == "__main__":
main()