def test_rnn_correlated_mixture_density(): # graph holds information necessary to build layers from parents random_state = np.random.RandomState(1999) graph = OrderedDict() minibatch_size = 5 X_seq = np.array([bernoulli_X for i in range(minibatch_size)]) y_seq = np.array([bernoulli_y for i in range(minibatch_size)]) X_mb, X_mb_mask = make_masked_minibatch(X_seq, slice(0, minibatch_size)) y_mb, y_mb_mask = make_masked_minibatch(y_seq, slice(0, minibatch_size)) datasets_list = [X_mb, X_mb_mask, y_mb, y_mb_mask] names_list = ["X", "X_mask", "y", "y_mask"] X_sym, X_mask_sym, y_sym, y_mask_sym = add_datasets_to_graph( datasets_list, names_list, graph) n_hid = 5 train_indices = np.arange(len(X_seq)) valid_indices = np.arange(len(X_seq)) l1 = tanh_layer([X_sym], graph, 'l1', proj_dim=n_hid, random_state=random_state) h = gru_recurrent_layer([l1], X_mask_sym, n_hid, graph, 'l1_rec', random_state=random_state) rval = bernoulli_and_correlated_log_gaussian_mixture_layer( [h], graph, 'hw', proj_dim=2, n_components=3, random_state=random_state) binary, coeffs, mus, log_sigmas, corr = rval cost = bernoulli_and_correlated_log_gaussian_mixture_cost( binary, coeffs, mus, log_sigmas, corr, y_sym) cost = masked_cost(cost, y_mask_sym).mean() cost_function = theano.function([X_sym, X_mask_sym, y_sym, y_mask_sym], [cost], mode="FAST_COMPILE") checkpoint_dict = create_checkpoint_dict(locals()) epoch_results = fixed_n_epochs_trainer( cost_function, cost_function, train_indices, valid_indices, checkpoint_dict, [X_seq, y_seq], minibatch_size, list_of_minibatch_functions=[make_masked_minibatch, make_masked_minibatch], list_of_train_output_names=["train_cost"], valid_output_name="valid_cost", n_epochs=1)
def normalize(x): return np.hstack((x[:, 0][:, None], (x[:, 1:] - X_mean) / (X_std))) def unnormalize(x): return np.hstack((x[:, 0][:, None], (x[:, 1:] * X_std) + X_mean)) X = np.array([normalize(x) for x in X]) y = np.array([x[1:] for x in X]) X = np.array([x[:-1] for x in X]) minibatch_size = 20 # Size must match size in training, same for above preproc X_mb, X_mb_mask = make_masked_minibatch(X, slice(0, minibatch_size)) y_mb, y_mb_mask = make_masked_minibatch(y, slice(0, minibatch_size)) running_mb = X_mb[:1] * 0 running_mask = X_mb_mask[:1] * 0 def gen_sample(rval, random_state, idx=-1): # binary # coeffs # mus # log_sigmas # corr binary, coeffs, mus, sigmas, corr = rval binary = binary[idx, :, 0] coeffs = coeffs[idx, :, :] mu_x = mus[idx, :, 0, :]
import numpy as np import theano from collections import OrderedDict random_state = np.random.RandomState(1999) graph = OrderedDict() data = make_ocr(["Hello", "humans"]) X = data["data"] y = data["target"] vocab_size = data["vocabulary_size"] vocab = data["vocabulary"] train_indices = data["train_indices"] valid_indices = train_indices X_mb, X_mb_mask = make_masked_minibatch(X, slice(0, len(X))) y_mb, y_mb_mask = make_masked_minibatch(y, slice(0, len(y))) n_hid = 256 n_out = vocab_size + 1 datasets_list = [X_mb, X_mb_mask, y_mb, y_mb_mask] names_list = ["X", "X_mask", "y", "y_mask"] X_sym, X_mask_sym, y_sym, y_mask_sym = add_datasets_to_graph(datasets_list, names_list, graph) h = gru_recurrent_layer([X_sym], X_mask_sym, n_hid, graph, "l1_rec", random_state=random_state) y_pred = softmax_layer([h], graph, "l2_proj", n_out, random_state=random_state) cost = log_ctc_cost(y_sym, y_mask_sym, y_pred, X_mask_sym).mean() params, grads = get_params_and_grads(graph, cost)
import numpy as np import theano from collections import OrderedDict random_state = np.random.RandomState(1999) graph = OrderedDict() data = make_ocr(["Hello", "humans"]) X = data["data"] y = data["target"] vocab_size = data["vocabulary_size"] vocab = data["vocabulary"] train_indices = data["train_indices"] valid_indices = train_indices X_mb, X_mb_mask = make_masked_minibatch(X, slice(0, len(X))) y_mb, y_mb_mask = make_masked_minibatch(y, slice(0, len(y))) n_hid = 256 n_out = vocab_size + 1 datasets_list = [X_mb, X_mb_mask, y_mb, y_mb_mask] names_list = ["X", "X_mask", "y", "y_mask"] X_sym, X_mask_sym, y_sym, y_mask_sym = add_datasets_to_graph( datasets_list, names_list, graph) h = gru_recurrent_layer([X_sym], X_mask_sym, n_hid, graph, 'l1_rec',
from collections import OrderedDict random_state = np.random.RandomState(1999) graph = OrderedDict() data = fetch_fruitspeech() X = data["specgrams"] y = data["target"] vocab_size = data["vocabulary_size"] vocab = data["vocabulary"] train_indices = data["train_indices"] valid_indices = data["valid_indices"] minibatch_size = 10 X_mb, X_mb_mask = make_masked_minibatch(X, slice(0, minibatch_size)) y_mb, y_mb_mask = make_masked_minibatch(y, slice(0, minibatch_size)) n_hid = 500 n_out = vocab_size + 1 datasets_list = [X_mb, X_mb_mask, y_mb, y_mb_mask] names_list = ["X", "X_mask", "y", "y_mask"] X_sym, X_mask_sym, y_sym, y_mask_sym = add_datasets_to_graph( datasets_list, names_list, graph) l1 = maxout_layer([X_sym], graph, 'l1', n_hid, random_state=random_state) h = bidirectional_gru_recurrent_layer([l1], X_mask_sym, n_hid, graph,