def test_srl_neural_model(train_file_path, valid_file_path): train_corpora = Conll05Corpora() train_corpora.load(train_file_path) train_problem = SRLProblem(train_corpora) valid_corpora = Conll05Corpora() valid_corpora.load(valid_file_path) valid_problem = SRLProblem(valid_corpora) init_rng() nn_architecture = SRLNetowrkArchitecture() nn_architecture.word_feature_dim = 50 nn_architecture.pos_feature_dim = 50 nn_architecture.dist_feature_dim = 50 nn_architecture.conv_window_height = 3 nn_architecture.conv_output_dim = 500 nn_architecture.hidden_layer_output_dims = [500,500] hyper_param = NeuralModelHyperParameter() hyper_param.n_epochs = 1000 hyper_param.learning_rate = 0.001 #1 hyper_param.learning_rate_decay_ratio = 0.8 hyper_param.learning_rate_lowerbound = 0.0000 hyper_param.l1_reg = 0 hyper_param.l2_reg = 0 problem_character = train_problem.get_problem_property() m = SRLNetwork(problem_character, nn_architecture) optimizer = CGDOptimizer() trained_batch_num = 0 valid_freq = 10 for iter in range(1000): for sentence in train_problem.sentences(): for X, y in train_problem.get_dataset_for_sentence(sentence): if trained_batch_num % valid_freq == 0: evaluate(m, valid_problem, trained_batch_num/valid_freq) optimizer.batch_size = X.shape[0] optimizer.update_chunk(X, y) param = optimizer.optimize(m, m.get_parameter()) m.set_parameter(param) trained_batch_num += 1
def test_cdg_optimizer(): layer_setting = [{"type": "perception", "activator_type": "sigmoid", "input_dim":50, "output_dim": 100}, {"type": "perception", "activator_type": "sigmoid", "input_dim":100, "output_dim": 100}, {"type": "perception", "activator_type": "sigmoid", "input_dim":100, "output_dim": 100}, {"type": "perception", "activator_type": "sigmoid", "input_dim":100, "output_dim": 1}] cost = {"type":"mse"} m = MultiLayerPerception(layer_setting, cost) optimizer = CGDOptimizer(max_epoches=3, batch_size=500) X = numpy.random.random((1000, 50)) y = numpy.random.random((1000, 1)) optimizer.update_chunk(X,y) param = optimizer.optimize(m, m.get_parameter()) m.set_parameter(param)