def run(self, back=True): super(DNN, self).run(back=back) data, labels = self.dset.get_batch() data = one_hot(data, self.hps.output_size) data = data.reshape((-1, data.shape[2])) #cost, grads = self.cost_and_grad(data, labels) #self.check_grad(data, labels, grads, params_to_check=['Wih'], eps=0.01) if back: self.update_params(data, labels) else: cost, probs = self.cost_and_grad(data, labels, back=False) return cost, probs
def run(self, back=True): super(NNJM, self).run(back=back) data, labels = self.dset.get_batch() data = one_hot(data, self.hps.output_size) data = data.reshape((-1, data.shape[2])) source_data = self.ctc_loader.get_batch() #cost, grads = self.cost_and_grad((data, source_data), labels) #self.check_grad((data, source_data), labels, grads, params_to_check=['Wsh'], eps=0.01) #print labels #print np.argmax(source_data, axis=0) if back: self.update_params((data, source_data), labels) else: cost, probs = self.cost_and_grad((data, source_data), labels, back=False) return cost, probs
def sample_continuation(s, model, order, alpha=1.0): if MODEL_TYPE == 'rnn': data = array(np.array([char_inds[w] for w in s[-1:]])).reshape(-1, 1) else: data = array(np.array([char_inds[w] for w in s[-order+1:]])).reshape(-1, 1) data = one_hot(data, model.hps.output_size) if MODEL_TYPE == 'rnn': _, probs = model.cost_and_grad(data, None, prev_h0=model.last_h) probs = np.squeeze(as_np(probs)) else: data = data.reshape((-1, data.shape[2])) _, probs = model.cost_and_grad(data, None) probs = probs.ravel() # Higher alpha -> more and more like most likely sequence probs = probs ** alpha probs = probs / sum(probs) w = np.random.choice(range(model.hps.output_size), p=probs) char = chars[w] return char