Example #1
0
def test_cnt_windows_iterator_oversample():
    iterator = CntWindowsFromCntIterator(batch_size=3,
                                         input_time_length=6,
                                         n_sample_preds=4,
                                         oversample_targets=True)
    iterator.reset_rng()
    y = np.append(np.zeros((16, 4)), np.ones((4, 4)), axis=0)
    in_set = DenseDesignMatrixWrapper(topo_view=to_4d_time_array(
        range(20)).swapaxes(2, 0),
                                      y=y)

    batches = list(iterator.get_batches(in_set, shuffle=True))
    assert 3 == len(batches)
    # Note that 14,20 is oversampled
    assert np.array_equal(
        batches[0][0].squeeze(), [range(
            6, 12), range(10, 16), range(14, 20)])
    assert np.array_equal(
        batches[1][0].squeeze(),
        [range(14, 20), range(14, 20),
         range(14, 20)])
    assert np.array_equal(
        batches[2][0].squeeze(),
        [[18, 19] + range(4), range(14, 20),
         range(2, 8)])
def test_cnt_windows_iterator_oversample():
    iterator = CntWindowsFromCntIterator(batch_size=3, input_time_length=6, n_sample_preds=4, oversample_targets=True)
    iterator.reset_rng()
    y = np.append(np.zeros((16,4)), np.ones((4,4)), axis=0)
    in_set = DenseDesignMatrixWrapper(topo_view=to_4d_time_array(range(20)).swapaxes(2,0), y=y)
    
    batches = list(iterator.get_batches(in_set, shuffle=True))
    assert 3 == len(batches)
    # Note that 14,20 is oversampled
    assert np.array_equal(batches[0][0].squeeze(), [range(6,12), range(10,16), range(14,20)])
    assert np.array_equal(batches[1][0].squeeze(), [range(14,20), range(14,20), range(14,20)])
    assert np.array_equal(batches[2][0].squeeze(), [[18,19] + range(4), range(14,20), range(2,8)])   
def test_cnt_windows_iterator_shuffle():
    #Random Regression test, values should not change unless randomization changes...
    iterator = CntWindowsFromCntIterator(batch_size=2, input_time_length=6, n_sample_preds=4)
    iterator.reset_rng()
    
    in_topo = to_4d_time_array(range(20)).swapaxes(2,0)
    y = np.outer(range(20), np.ones(4))
    in_set = DenseDesignMatrixWrapper(topo_view=in_topo, y=y)
    
    batches = list(iterator.get_batches(in_set, shuffle=True))
    assert 2 == len(batches)
    assert np.array_equal([range(6,12), [18,19] + range(4), range(10,16)], batches[0][0].squeeze())
    assert np.array_equal(np.outer([8,9,10,11,0,1,2,3,12,13,14,15], np.ones(4)), batches[0][1])
    assert np.array_equal([range(14,20), range(2,8)], batches[1][0].squeeze())
    assert np.array_equal(np.outer([16,17,18,19,4,5,6,7], np.ones(4)), batches[1][1])
def test_cnt_windows_iterator():
    iterator = CntWindowsFromCntIterator(batch_size=2, input_time_length=6,
            n_sample_preds=4)
    
    in_topo = to_4d_time_array(range(20)).swapaxes(2,0)
    y = np.outer(range(20), np.ones(4))
    in_set = DenseDesignMatrixWrapper(topo_view=in_topo, y=y)
    
    batches = list(iterator.get_batches(in_set, shuffle=False))
    
    assert 2 == len(batches)
    # we have two lost samples so expect wraparound from back
    assert np.array_equal([[18,19] + range(4), range(2,8), range(6,12)], batches[0][0].squeeze())
    assert np.array_equal(np.outer([0,1,2,3,4,5,6,7,8,9,10,11], np.ones(4)), batches[0][1])
    assert np.array_equal([range(10,16), range(14,20)], batches[1][0].squeeze())
    assert np.array_equal(np.outer([12,13,14,15,16,17,18,19], np.ones(4)), batches[1][1])
Example #5
0
def test_cnt_windows_iterator_shuffle():
    #Random Regression test, values should not change unless randomization changes...
    iterator = CntWindowsFromCntIterator(batch_size=2,
                                         input_time_length=6,
                                         n_sample_preds=4)
    iterator.reset_rng()

    in_topo = to_4d_time_array(range(20)).swapaxes(2, 0)
    y = np.outer(range(20), np.ones(4))
    in_set = DenseDesignMatrixWrapper(topo_view=in_topo, y=y)

    batches = list(iterator.get_batches(in_set, shuffle=True))
    assert 2 == len(batches)
    assert np.array_equal([range(6, 12), [18, 19] + range(4),
                           range(10, 16)], batches[0][0].squeeze())
    assert np.array_equal(
        np.outer([8, 9, 10, 11, 0, 1, 2, 3, 12, 13, 14, 15], np.ones(4)),
        batches[0][1])
    assert np.array_equal([range(14, 20), range(2, 8)],
                          batches[1][0].squeeze())
    assert np.array_equal(np.outer([16, 17, 18, 19, 4, 5, 6, 7], np.ones(4)),
                          batches[1][1])
Example #6
0
def test_cnt_windows_iterator():
    iterator = CntWindowsFromCntIterator(batch_size=2,
                                         input_time_length=6,
                                         n_sample_preds=4)

    in_topo = to_4d_time_array(range(20)).swapaxes(2, 0)
    y = np.outer(range(20), np.ones(4))
    in_set = DenseDesignMatrixWrapper(topo_view=in_topo, y=y)

    batches = list(iterator.get_batches(in_set, shuffle=False))

    assert 2 == len(batches)
    # we have two lost samples so expect wraparound from back
    assert np.array_equal(
        [[18, 19] + range(4), range(2, 8),
         range(6, 12)], batches[0][0].squeeze())
    assert np.array_equal(
        np.outer([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], np.ones(4)),
        batches[0][1])
    assert np.array_equal([range(10, 16), range(14, 20)],
                          batches[1][0].squeeze())
    assert np.array_equal(
        np.outer([12, 13, 14, 15, 16, 17, 18, 19], np.ones(4)), batches[1][1])