示例#1
0
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)
示例#3
0
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)
示例#5
0
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)