def main(_): """High level pipeline. This script performs the trainsing, evaling and testing state of the model. """ learning_rate = FLAGS.learning_rate w_decay_factor = FLAGS.w_decay_factor num_steps = FLAGS.num_steps opt_method = FLAGS.opt_method feature_columns = FLAGS.feature_columns.split(',') # Load dataset. dataset = read_dataset("data/train.csv") # Data processing. train_set = preprocess_data(dataset, feature_columns=feature_columns, squared_features=True) # Initialize model. ndim = train_set[0].shape[1] model = LinearRegression(ndim, 'zeros') # Train model. if opt_method == 'iter': # Perform gradient descent. train_model(train_set, model, learning_rate, num_steps=num_steps, shuffle=True) print('Performed gradient descent.') else: # Compute closed form solution. train_model_analytic(train_set, model) print('Closed form solution.') train_loss = eval_model(train_set, model) print("Train loss: %s" % train_loss) # Plot the x vs. y if one dimension. if train_set[0].shape[1] == 1: plot_x_vs_y(train_set, model) # Eval model. raw_eval = read_dataset("data/val.csv") eval_set = preprocess_data(raw_eval, feature_columns=feature_columns, squared_features=True) eval_loss = eval_model(eval_set, model) print("Eval loss: %s" % eval_loss) # Test model. raw_test = read_dataset("data/test.csv") test_set = preprocess_data(raw_test, feature_columns=feature_columns, squared_features=True) test_loss = eval_model(test_set, model) print("Test loss: %s" % test_loss)
def test_train_model_analytic_w_shape(self): train_eval_model.train_model_analytic(self.processed_data, self.model) self.assertEqual(self.model.w.shape, (8, 1))