Exemple #1
0
                inputs_v = seq_out[step_id:(step_id+bptt_steps)]
            elif len(seq_out)>0:
                for b_id in xrange(batch_size):
                    if  p_sub > np.random.random_sample():
                        for seq_id in xrange(bptt_steps):
                            inputs_v[seq_id][b_id, :] = seq_out[step_id + seq_id][b_id, :]

            feed_dict = {k: v for k, v in zip(inputs, inputs_v) }
            feed_dict[state] = state_v
            feed_dict.update({k: v for k, v in zip(targets, targets_v)})

            outputs_v, state_v, loss_v, _ = sess.run([outputs, finstate, loss, train_step], feed_dict)
            new_seq_out += outputs_v
            losses.append(loss_v)
        
        seq_out = new_seq_out
        batch_ids += forecast_step
        gc.collect()

    print "Epoch {}, learning rate {}".format(e, ep_lrate), "train loss {}".format(sum(losses)/float(len(losses)))
    if e % 100 == 0 and e > 0:
        print "Generating sample"
        generated = generate()
        generated = np.asarray(generated).reshape(len(generated), input_size)        
        cm = ConvModel.deserialize()
        waveform = cm.restore_hidden(generated, sess = sess)        
        
        cm.save_waveform_as(waveform, 0, env.run("{}_generated.wav".format(e)))

print "Saving model {}".format(saver.save(sess, model_fname))