예제 #1
0
파일: dnn.py 프로젝트: comadan/nn
    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
예제 #2
0
    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
예제 #3
0
파일: nnjm.py 프로젝트: comadan/nn
    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
예제 #4
0
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