tasks = sample_tasks(dim, difficulties) print(tasks) network = MLP( input_shape=(in_dim, ), output_dim=out_dim, hidden_sizes=hidden_size, hidden_nonlinearity=NL.tanh, output_nonlinearity=None, ) out_var = TT.matrix('out_var') prediction = network._output loss = lasagne.objectives.squared_error(prediction, out_var) loss = loss.mean() params = network.get_params(trainable=True) updates = lasagne.updates.adam(loss, params, learning_rate=0.001) train_fn = T.function([network.input_layer.input_var, out_var], loss, updates=updates, allow_input_downcast=True) ls = TT.mean((prediction - out_var)**2) grad = T.grad(ls, params, disconnected_inputs='warn') grad_fn = T.function([network.input_layer.input_var, out_var], grad, allow_input_downcast=True) loss_fn = T.function([network.input_layer.input_var, out_var], loss, allow_input_downcast=True) out = T.function([network.input_layer.input_var], prediction,
tasks = sample_tasks(dim, difficulties) print(tasks) network = MLP( input_shape=(in_dim,), output_dim=out_dim, hidden_sizes=hidden_size, hidden_nonlinearity=NL.tanh, output_nonlinearity=None, ) out_var = TT.matrix('out_var') prediction = network._output loss = lasagne.objectives.squared_error(prediction, out_var) loss = loss.mean() params = network.get_params(trainable=True) updates = lasagne.updates.sgd(loss, params, learning_rate=0.002) train_fn = T.function([network.input_layer.input_var, out_var], loss, updates=updates, allow_input_downcast=True) ls = TT.mean((prediction - out_var)**2) grad = T.grad(ls, params, disconnected_inputs='warn') grad_fn = T.function([network.input_layer.input_var, out_var], grad, allow_input_downcast=True) loss_fn = T.function([network.input_layer.input_var, out_var], loss, allow_input_downcast=True) out = T.function([network.input_layer.input_var], prediction, allow_input_downcast=True) Xs, Ys = synthesize_data(dim, 2000, tasks) train(train_fn, np.concatenate(Xs), np.concatenate(Ys), init_epochs) print('------- initial training complete ---------------') init_param_value = np.copy(network.get_param_values()) Xs, Ys = synthesize_data(dim, 2000, tasks)
tasks = sample_tasks(dim, difficulties) print(tasks) network = MLP( input_shape=(in_dim, ), output_dim=out_dim, hidden_sizes=hidden_size, hidden_nonlinearity=NL.tanh, output_nonlinearity=None, ) out_var = TT.matrix('out_var') prediction = network._output loss = lasagne.objectives.squared_error(prediction, out_var) loss = loss.mean() params = network.get_params(trainable=True) updates = lasagne.updates.sgd(loss, params, learning_rate=0.002) train_fn = T.function([network.input_layer.input_var, out_var], loss, updates=updates, allow_input_downcast=True) ls = TT.mean((prediction - out_var)**2) grad = T.grad(ls, params, disconnected_inputs='warn') grad_fn = T.function([network.input_layer.input_var, out_var], grad, allow_input_downcast=True) loss_fn = T.function([network.input_layer.input_var, out_var], loss, allow_input_downcast=True) out = T.function([network.input_layer.input_var], prediction,
tasks = sample_tasks(dim, difficulties) network = MLP( input_shape=(in_dim, ), output_dim=out_dim, hidden_sizes=hidden_size, hidden_nonlinearity=NL.tanh, output_nonlinearity=None, ) out_var = TT.matrix('out_var') prediction = network._output loss = lasagne.objectives.squared_error(prediction, out_var) loss = loss.mean() params = network.get_params(trainable=True) updates = lasagne.updates.adam(loss, params, learning_rate=0.002) train_fn = T.function([network.input_layer.input_var, out_var], loss, updates=updates, allow_input_downcast=True) ls = TT.mean((prediction - out_var)**2) grad = T.grad(ls, params, disconnected_inputs='warn') grad_fn = T.function([network.input_layer.input_var, out_var], grad, allow_input_downcast=True) loss_fn = T.function([network.input_layer.input_var, out_var], loss, allow_input_downcast=True) out = T.function([network.input_layer.input_var], prediction,