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
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
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 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