"max_iter": args.max_iter,
    "use_logit":
    False if args.loss in ["pairwise", "pairwise+utility"] else True,
    "num_workers": args.num_workers
}

print("Reading dataset")

if args.dataset == "movielens":
    data_dir = cfg.vals['movielens_dir'] + "/preprocessed_choice/"
elif args.dataset == "amazon":
    data_dir = cfg.vals['amazon_dir'] + "/preprocessed_choice/"
else:
    raise ValueError("--dataset must be 'amazon' or 'movielens'")

X_train, X_test, y_train, y_test = read_train_test_dir(data_dir)

print("Dataset read complete...")

user_item_rating_map = load_dict_output(data_dir, "user_item_rating.json",
                                        True)
item_rating_map = load_dict_output(data_dir, "item_rating.json", True)
stats = load_dict_output(data_dir, "stats.json")

print("n users: {}".format(stats['n_users']))
print("n items: {}".format(stats['n_items']))

n_test = get_test_sample_size(X_test.shape[0], k=TEST_BATCH_SIZE)
X_test = X_test[:n_test, :]
y_test = y_test[:n_test, :]
    "lambda": args.lmbda,
    "seq_len": args.seq_len,
    "max_iter": args.max_iter,
    "grad_clip": args.grad_clip
}

print("Reading dataset")

if args.dataset == "movielens":
    data_dir = cfg.vals['movielens_dir'] + "/preprocessed/"
elif args.dataset == "amazon":
    data_dir = cfg.vals['amazon_dir'] + "/preprocessed/"
else:
    raise ValueError("--dataset must be 'amazon' or 'movielens'")

X_train, X_test, y_train, y_test = read_train_test_dir(data_dir, drop_ts=False)

user_item_rating_map = load_dict_output(data_dir, "user_item_rating.json",
                                        True)
item_rating_map = load_dict_output(data_dir, "item_rating.json", True)
stats = load_dict_output(data_dir, "stats.json")
print("Dataset read complete...")

print("n users: {}".format(stats['n_users']))
print("n items: {}".format(stats['n_items']))

interactions = Interactions(user_ids=X_train[:, 0],
                            item_ids=X_train[:, 1],
                            ratings=y_train.flatten(),
                            timestamps=X_train[:, 2],
                            num_users=stats['n_users'],