def primal_loss(W, hyperparam_vect, i_primal, reg_penalty=True): RS = RandomState((seed, i_hyper, i_primal)) idxs = RS.permutation(N_train)[:batch_size] minibatch = dictslice(train_data, idxs) loss = reg_loss_fun(W, minibatch, hyperparam_vect, reg_penalty) if verbose and i_primal % 10 == 0: print "Iter {0}, loss, {1}".format(i_primal, getval(loss)) return loss
def sub_primal_stochastic_loss(z_vect, transform_vect, i_primal, i_script): RS = RandomState((seed, i_hyper, i_primal, i_script)) N_train = train_data[i_script]['X'].shape[0] idxs = RS.permutation(N_train)[:batch_size] minibatch = dictslice(train_data[i_script], idxs) loss = loss_from_latents(z_vect, transform_vect, i_script, minibatch) reg = regularization(z_vect) if i_script == 0 else 0.0 if i_primal % N_thin == 0 and i_script == 0: print "Iter {0}, full losses: train: {1}, valid: {2}, reg: {3}".format( i_primal, total_loss(train_data, getval(z_vect)), total_loss(valid_data, getval(z_vect)), getval(reg) / N_scripts_per_iter) return loss + reg
def primal_stochastic_loss(z_vect, transform_vect, i_primal): RS = RandomState((seed, i_hyper, i_primal)) loss = 0.0 for _ in range(N_scripts_per_iter): i_script = RS.randint(N_scripts) N_train = train_data[i_script]['X'].shape[0] idxs = RS.permutation(N_train)[:batch_size] minibatch = dictslice(train_data[i_script], idxs) loss += loss_from_latents(z_vect, transform_vect, i_script, minibatch) reg = regularization(z_vect) if i_primal % 20 == 0: print "Iter {0}, loss {1}, reg {2}".format(i_primal, getval(loss), getval(reg)) print "Full losses: train: {0}, valid: {1}".format( total_loss(train_data, getval(z_vect)), total_loss(valid_data, getval(z_vect))) return loss + reg
def primal_stochastic_loss(z_vect, transform_vect, i_primal): RS = RandomState((seed, i_hyper, i_primal)) loss = 0.0 for _ in range(N_scripts_per_iter): i_script = RS.randint(N_scripts) N_train = train_data[i_script]['X'].shape[0] idxs = RS.permutation(N_train)[:batch_size] minibatch = dictslice(train_data[i_script], idxs) loss += loss_from_latents(z_vect, transform_vect, i_script, minibatch) reg = regularization(z_vect) if i_primal % 1 == 0: print "Iter {0}, loss {1}, reg {2}".format(i_primal, getval(loss), getval(reg)) print "Full losses: train: {0}, valid: {1}".format( total_loss(train_data, getval(z_vect)), total_loss(valid_data, getval(z_vect))) return loss + reg