Esempio n. 1
0
def train_model(args, tr_sparse):
    """Instantiate WALS model and use "simple_train" to factorize the matrix.
    Args:
    args: a list of parameters
    tr_sparse: sparse training matrix
    
    Returns:
    the row and column factors in numpy format.
    """
    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(
        tr_sparse, args.latent_factors, args.regularization, args.unobs_weight,
        args.weights, args.wt_type, args.feature_wt_exp,
        args.feature_wt_factor)

    # factorize matrix
    session = wals.simple_train(model, input_tensor, args.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
    session.close()

    return output_row, output_col
Esempio n. 2
0
def train(params,train_sparse):

	latent_factors = params['latent_factors']
	num_iters = params['num_iters']
	reg = params['reg']
	unobserved_weight = params['unobserved_weight']
	use_weight=params['use_weight']
	weight_type = params['weight_type']
	feature_weight_exp = params['feature_weight_exp']
	feature_weight_lin = params['feature_weight_lin']


	input_tensor, row_factor, col_factor, model= wals.wals_model(train_sparse,latent_factors,reg,
																unobserved_weight,use_weight,
																weight_type,
																feature_weight_exp,
																feature_weight_lin)
		
	sess=wals.simple_train(model,input_tensor,num_iters)
	
	user_factor=row_factor.eval(session=sess)
	item_factor=col_factor.eval(session=sess)

	sess.close()

	return user_factor,item_factor
Esempio n. 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)
Esempio n. 4
0
def train_model(args, tr_sparse):
  """Instantiate WALS model and use "simple_train" to factorize the matrix.

  Args:
    args: training args containing hyperparams
    tr_sparse: sparse training matrix

  Returns:
     the row and column factors in numpy format.
  """
  dim = args['latent_factors']
  num_iters = args['num_iters']
  reg = args['regularization']
  unobs = args['unobs_weight']
  wt_type = args['wt_type']
  feature_wt_exp = args['feature_wt_exp']
  obs_wt = args['feature_wt_factor']

  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(tr_sparse,
                                                                dim,
                                                                reg,
                                                                unobs,
                                                                args['weights'],
                                                                wt_type,
                                                                feature_wt_exp,
                                                                obs_wt)

  # 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()

  return output_row, output_col
def train_model(args, tr_sparse):
  """Instantiate WALS model and use "simple_train" to factorize the matrix.

  Args:
    args: training args containing hyperparams
    tr_sparse: sparse training matrix

  Returns:
     the row and column factors in numpy format.
  """
  dim = args['latent_factors']
  num_iters = args['num_iters']
  reg = args['regularization']
  unobs = args['unobs_weight']
  wt_type = args['wt_type']
  feature_wt_exp = args['feature_wt_exp']
  obs_wt = args['feature_wt_factor']

  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(tr_sparse,
                                                                dim,
                                                                reg,
                                                                unobs,
                                                                args['weights'],
                                                                wt_type,
                                                                feature_wt_exp,
                                                                obs_wt)

  # 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()

  return output_row, output_col
def train_model(tr_sparse):
    """Instantiate WALS model and use "simple_train" to factorize the matrix.

    Args:
        args: training args containing hyperparams
        tr_sparse: sparse training matrix

    Returns:
        the row and column factors in numpy format.
    """
    dim = 5
    num_iters = 20
    reg = 0.07
    unobs = 0.01
    wt_type = 0
    feature_wt_exp = 0.08
    obs_wt = 130

    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(
        tr_sparse, dim, reg, unobs, True, wt_type, feature_wt_exp, obs_wt)

    # factorize matrix
    session = wals.simple_train(model, input_tensor, num_iters)

    print('end')
    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()

    return output_row, output_col