コード例 #1
0
        if summarize:
            loss = np.mean(last_save_losses)
            llprint("\n\tAvg. Logistic Loss: %.4f\n" % (loss))
            if np.isnan(loss):
                raise Exception('nan Loss')

        if summarize and rnn.debug:
            loss = np.mean(last_save_losses)
            last_save_losses = []

        if take_checkpoint:
            llprint("\nSaving Checkpoint ... "),
            curr_state = {
                "epoch": epoch,
                "rnn_state": rnn.state_dict(),
                "opti_state": optimizer.state_dict()
            }
            # check_ptr = os.path.join(ckpts_dir, 'step_{}.pth'.format(epoch))
            # T.save(curr_state, check_ptr)
            check_ptr = os.path.join(ckpts_dir, 'best.pth')
            T.save(curr_state, check_ptr)
            llprint("Done!\n")

    for i in range(args.test_iterations):
        llprint("\rIteration %d/%d" % (i, args.test_iterations))
        input_data, target_output = dataset.generate_data(
            1, args.bits, args.cuda)

        if args.debug:
            output, (chx, mhx, rv), v = rnn(input_data, (None, mhx, None),
コード例 #2
0
        last_100_losses.append(loss_value)

        if summarize:
            llprint("\rIteration %d/%d" % (epoch, iterations))
            llprint("\nAvg. Logistic Loss: %.4f\n" %
                    (np.mean(last_100_losses)))
            output = output.data.cpu().numpy()
            print("Real value: ", ' = ' + str(int(target_output[0])))
            print("Predicted:  ",
                  ' = ' + str(int(output // 1)) + " [" + str(output) + "]")
            last_100_losses = []

        if take_checkpoint:
            llprint("\nSaving Checkpoint ... "),
            check_ptr = os.path.join(ckpts_dir, 'step_{}.pth'.format(epoch))
            cur_weights = rnn.state_dict()
            T.save(cur_weights, check_ptr)
            llprint("Done!\n")

    llprint("\nTesting generalization...\n")

    rnn.eval()

    for i in range(int((iterations + 1) / 10)):
        llprint("\nIteration %d/%d" % (i, iterations))
        # We test now the learned generalization using sequence_max_length examples
        random_length = np.random.randint(2, int(sequence_max_length) * 10 + 1)
        input_data, target_output, sums_text = generate_data(
            random_length, input_size)

        if rnn.debug: