default=1, type=int, help="Maximum number of threads to use.") args = parser.parse_args() # Create logdir name args.logdir = "logs/{}-{}-{}".format( os.path.basename(__file__), datetime.datetime.now().strftime("%Y-%m-%d_%H%M%S"), ",".join( ("{}={}".format(re.sub("(.)[^_]*_?", r"\1", key), value) for key, value in sorted(vars(args).items())))) if not os.path.exists("logs"): os.mkdir("logs") # TF 1.6 will do this by itself # Load the data train = nli_dataset.NLIDataset("nli-train.txt") dev = nli_dataset.NLIDataset("nli-dev.txt", train=train, shuffle_batches=False) test = nli_dataset.NLIDataset("nli-test.txt", train=train, shuffle_batches=False) # Construct the network network = Network(threads=args.threads) network.construct(args, len(train.vocabulary("words")), len(train.vocabulary("chars")), len(train.vocabulary("languages"))) # Train for i in range(args.epochs):
import argparse parser = argparse.ArgumentParser() parser.add_argument("--batch_size", default=16, type=int, help="Batch size.") parser.add_argument("--data_train", default="nli-train.txt", type=str, help="Training data file.") parser.add_argument("--data_dev", default="nli-dev.txt", type=str, help="Development data file.") parser.add_argument("--data_test", default="nli-test.txt", type=str, help="Testing data file.") parser.add_argument("--epochs", default=10, type=int, help="Number of epochs.") parser.add_argument("--logdir", default="logs", type=str, help="Logdir name.") parser.add_argument("--rnn_cell", default="GRU", type=str, help="RNN cell type.") parser.add_argument("--rnn_cell_dim", default=100, type=int, help="RNN cell dimension.") parser.add_argument("--threads", default=1, type=int, help="Maximum number of threads to use.") args = parser.parse_args() # Load the data print("Loading the data.", file=sys.stderr) data_train = nli_dataset.NLIDataset(args.data_train) data_dev = nli_dataset.NLIDataset(args.data_dev, train=data_train) data_test = nli_dataset.NLIDataset(args.data_test, train=data_train, no_languages=True) # Construct the network print("Constructing the network.", file=sys.stderr) expname = "nli-{}{}-bs{}-epochs{}".format(args.rnn_cell, args.rnn_cell_dim, args.batch_size, args.epochs) network = Network(rnn_cell=args.rnn_cell, rnn_cell_dim=args.rnn_cell_dim, num_words=len(data_train.vocabulary('words')), num_chars=len(data_train.vocabulary('chars')), logdir=args.logdir, expname=expname, threads=args.threads) # Train best_dev_accuracy = 0 test_predictions = None for epoch in range(args.epochs):