def main(args): # process input file input_file = util.ensure_local_file(args['train_file']) user_map, item_map, tr_sparse, test_sparse = model.create_test_and_train_sets( args, input_file, args['data_type']) # train model output_row, output_col = model.train_model(args, tr_sparse) # save trained model to job directory if args['data_type'] == 'user_ratings': model.save_model_json(args, user_map, item_map, output_row, output_col) user_items_w = model.get_user_items_w(input_file) model.save_user_items_w(args, user_items_w) else: model.save_model(args, user_map, item_map, output_row, output_col) # log results train_rmse = wals.get_rmse(output_row, output_col, tr_sparse) test_rmse = wals.get_rmse(output_row, output_col, test_sparse) if args['hypertune']: # write test_rmse metric for hyperparam tuning util.write_hptuning_metric(args, test_rmse) tf.logging.info('train RMSE = %.2f' % train_rmse) tf.logging.info('test RMSE = %.2f' % test_rmse)
def main(): user_map, item_map, tr_sparse, test_sparse = make_tran_and_test( sys.argv[1]) output_row, output_col = train_model(tr_sparse) train_rmse = wals.get_rmse(output_row, output_col, tr_sparse) test_rmse = wals.get_rmse(output_row, output_col, test_sparse) print(train_rmse) print(test_rmse)
def process(args): if args.format == "adjlist": G = graph.load_adjacencylist(args.input, undirected=args.undirected) elif args.format == "edgelist": G = graph.load_edgelist(args.input, undirected=args.undirected) elif args.format == "mat": G = graph.load_matfile(args.input, variable_name=args.matfile_variable_name, undirected=args.undirected) else: raise Exception( "Unknown file format: '%s'. Valid formats: 'adjlist', 'edgelist', 'mat'" % args.format) print("Number of nodes: {}".format(len(G.nodes()))) nxG = nx.Graph(G) Gmat = nx.adjacency_matrix(nxG).tocoo() num_iters = args.num_iters tf.logging.info('Train Start: {:%Y-%m-%d %H:%M:%S}'.format( datetime.datetime.now())) # generate model input_tensor, row_factor, col_factor, model = wals.wals_model( Gmat, args.dim // 2, args.reg, args.unobs) # factorize matrix session = wals.simple_train(model, input_tensor, num_iters) tf.logging.info('Train Finish: {:%Y-%m-%d %H:%M:%S}'.format( datetime.datetime.now())) # evaluate output factor matrices output_row = row_factor.eval(session=session) output_col = col_factor.eval(session=session) # close the training session now that we've evaluated the output session.close() embedding = np.concatenate((output_row, output_col), axis=1) print(embedding) # save trained model to job directory np.savetxt(args.output, embedding) # log results train_rmse = wals.get_rmse(output_row, output_col, Gmat) log_info = 'train RMSE = %.2f' % train_rmse tf.logging.info(log_info) print(log_info)
def main(args): # process input file input_file = util.ensure_local_file(args['train_files'][0]) user_map, item_map, tr_sparse, test_sparse = model.create_test_and_train_sets( args, input_file, args['data_type']) # train model output_row, output_col = model.train_model(args, tr_sparse) # save trained model to job directory model.save_model(args, user_map, item_map, output_row, output_col) # log results train_rmse = wals.get_rmse(output_row, output_col, tr_sparse) test_rmse = wals.get_rmse(output_row, output_col, test_sparse) if args['hypertune']: # write test_rmse metric for hyperparam tuning util.write_hptuning_metric(args, test_rmse) tf.logging.info('train RMSE = %.2f' % train_rmse) tf.logging.info('test RMSE = %.2f' % test_rmse)
def main(args): tf.logging.set_verbosity(tf.logging.INFO) # input files input_file = util.ensure_local_file(args.train_file) user_map, item_map, tr_sparse, test_sparse = model.create_test_and_train_sets( input_file) # train model output_row, output_col = model.train_model(args, tr_sparse) # save trained model to job directory model.save_model(args, user_map, item_map, output_row, output_col) # log results test_rmse = wals.get_rmse(output_row, output_col, test_sparse) util.write_hptuning_metric(args, test_rmse)