Beispiel #1
0
def test_binary(multiple_out=False, n_epochs=1000, optimizer='bfgs'):
    """ Test RNN with binary outputs. """
    n_hidden = 10
    n_in = 5
    if multiple_out:
        n_out = 2
    else:
        n_out = 1
    n_steps = 10
    n_seq = 10  # per batch
    n_batches = 50

    np.random.seed(0)
    # simple lag test
    seq = np.random.randn(n_steps, n_seq * n_batches, n_in)
    targets = np.zeros((n_steps, n_seq * n_batches, n_out))

    # whether lag 1 (dim 3) is greater than lag 2 (dim 0)
    targets[2:, :, 0] = np.cast[np.int](seq[1:-1, :, 3] > seq[:-2, :, 0])
    # pdb.set_trace()
    if multiple_out:
        # whether product of lag 1 (dim 4) and lag 1 (dim 2)
        # is less than lag 2 (dim 0)
        targets[2:, :, 1] = np.cast[np.int](
            (seq[1:-1, :, 4] * seq[1:-1, :, 2]) > seq[:-2, :, 0])

    model = MetaRNN_minibatch(n_in=n_in, n_hidden=n_hidden, n_out=n_out,
                    learning_rate=0.005, learning_rate_decay=0.999,
                    n_epochs=n_epochs, batch_size=n_seq, activation='tanh',
                    output_type='binary')

    model.fit(seq, targets, validate_every=100, compute_zero_one=True,
              optimizer=optimizer)

    seqs = xrange(10)
Beispiel #2
0
def test_binary(multiple_out=False, n_epochs=1000, optimizer='bfgs'):
    """ Test RNN with binary outputs. """
    n_hidden = 10
    n_in = 5
    if multiple_out:
        n_out = 2
    else:
        n_out = 1
    n_steps = 10
    n_seq = 10  # per batch
    n_batches = 50

    np.random.seed(0)
    # simple lag test
    seq = np.random.randn(n_steps, n_seq * n_batches, n_in)
    targets = np.zeros((n_steps, n_seq * n_batches, n_out))

    # whether lag 1 (dim 3) is greater than lag 2 (dim 0)
    targets[2:, :, 0] = np.cast[np.int](seq[1:-1, :, 3] > seq[:-2, :, 0])
    # pdb.set_trace()
    if multiple_out:
        # whether product of lag 1 (dim 4) and lag 1 (dim 2)
        # is less than lag 2 (dim 0)
        targets[2:, :, 1] = np.cast[np.int](
            (seq[1:-1, :, 4] * seq[1:-1, :, 2]) > seq[:-2, :, 0])

    model = MetaRNN_minibatch(n_in=n_in,
                              n_hidden=n_hidden,
                              n_out=n_out,
                              learning_rate=0.005,
                              learning_rate_decay=0.999,
                              n_epochs=n_epochs,
                              batch_size=n_seq,
                              activation='tanh',
                              output_type='binary')

    model.fit(seq,
              targets,
              validate_every=100,
              compute_zero_one=True,
              optimizer=optimizer)

    seqs = xrange(10)
Beispiel #3
0
def train_RNN_minibatch(dataset=None, n_hidden=1500, steps=30, batch_size=30, n_epochs=100, optimizer='sgd'):

    # train_set_x, train_set_y = dataset.get_batch_design(0, steps, dataset.phase2['train'], type='numpy_dense', isInt=True)
    # valid_set_x, valid_set_y = dataset.get_batch_design(0, steps, dataset.phase2['valid'], type='numpy_dense', isInt=True)
    train_set_x, train_set_y = dataset.phase2['train']['x'], dataset.phase2['train']['y']
    valid_set_x, valid_set_y = dataset.phase2['valid']['x'], dataset.phase2['valid']['y']
    test_set_x, test_set_y = dataset.phase2['test']['x'], dataset.phase2['test']['y']
    # train_set_y = np.asarray(valid_set_x, dtype=np.int32)
    # valid_set_x, valid_set_y = dataset.phase2['valid']['x'], dataset.phase2['valid']['y']
    # test_set_x, test_set_y = dataset.get_batch_design(0, batch_size, dataset.phase2['test'], type='numpy_dense')

    print train_set_x.shape[1]
    model = MetaRNN_minibatch(n_in=train_set_x.shape[1], n_hidden=n_hidden, n_out=1,
                    learning_rate=0.01, learning_rate_decay=0.99,
                    n_epochs=n_epochs, activation='tanh', L2_reg=0.01,
                    batch_size=batch_size, output_type='binary'
                    )
    model.fit([train_set_x], [train_set_y], X_test=[valid_set_x], Y_test=[valid_set_y], validate_every=1, compute_zero_one=True, optimizer=optimizer)
    pdb.set_trace()
    return model
Beispiel #4
0
def train_RNN_minibatch(dataset=None,
                        n_hidden=1500,
                        steps=30,
                        batch_size=30,
                        n_epochs=100,
                        optimizer='sgd'):

    # train_set_x, train_set_y = dataset.get_batch_design(0, steps, dataset.phase2['train'], type='numpy_dense', isInt=True)
    # valid_set_x, valid_set_y = dataset.get_batch_design(0, steps, dataset.phase2['valid'], type='numpy_dense', isInt=True)
    train_set_x, train_set_y = dataset.phase2['train']['x'], dataset.phase2[
        'train']['y']
    valid_set_x, valid_set_y = dataset.phase2['valid']['x'], dataset.phase2[
        'valid']['y']
    test_set_x, test_set_y = dataset.phase2['test']['x'], dataset.phase2[
        'test']['y']
    # train_set_y = np.asarray(valid_set_x, dtype=np.int32)
    # valid_set_x, valid_set_y = dataset.phase2['valid']['x'], dataset.phase2['valid']['y']
    # test_set_x, test_set_y = dataset.get_batch_design(0, batch_size, dataset.phase2['test'], type='numpy_dense')

    print train_set_x.shape[1]
    model = MetaRNN_minibatch(n_in=train_set_x.shape[1],
                              n_hidden=n_hidden,
                              n_out=1,
                              learning_rate=0.01,
                              learning_rate_decay=0.99,
                              n_epochs=n_epochs,
                              activation='tanh',
                              L2_reg=0.01,
                              batch_size=batch_size,
                              output_type='binary')
    model.fit([train_set_x], [train_set_y],
              X_test=[valid_set_x],
              Y_test=[valid_set_y],
              validate_every=1,
              compute_zero_one=True,
              optimizer=optimizer)
    pdb.set_trace()
    return model