Beispiel #1
0
class TestRename(object):
    def setUp(self):
        self.stream = DataStream(
            IndexableDataset(
                OrderedDict([('X', numpy.ones((4, 2, 2))),
                             ('y', numpy.array([0, 1, 0, 1]))]),
                axis_labels={'X': ('batch', 'width', 'height'),
                             'y': ('batch',)}),
            iteration_scheme=SequentialScheme(4, 2))
        self.transformer = Rename(
            self.stream, {'X': 'features', 'y': 'targets'})

    def test_renames_sources(self):
        assert_equal(self.transformer.sources, ('features', 'targets'))

    def test_leaves_data_unchanged(self):
        assert_equal(
            list(self.transformer.get_epoch_iterator()),
            [(numpy.ones((2, 2, 2)), numpy.array([0, 1])),
             (numpy.ones((2, 2, 2)), numpy.array([0, 1]))])

    def test_raises_error_on_nonexistent_source_name(self):
        assert_raises(KeyError, Rename, self.stream, {'Z': 'features'})

    def test_renames_axis_labels(self):
        assert_equal(self.transformer.axis_labels,
                     {'features': ('batch', 'width', 'height'),
                      'targets': ('batch',)})
Beispiel #2
0
class TestRename(object):
    def setUp(self):
        self.stream = DataStream(
            IndexableDataset(
                OrderedDict([('X', numpy.ones((4, 2, 2))),
                             ('y', numpy.array([0, 1, 0, 1]))]),
                axis_labels={'X': ('batch', 'width', 'height'),
                             'y': ('batch',)}),
            iteration_scheme=SequentialScheme(4, 2))
        self.transformer = Rename(
            self.stream, {'X': 'features', 'y': 'targets'})

    def test_renames_sources(self):
        assert_equal(self.transformer.sources, ('features', 'targets'))

    def test_leaves_data_unchanged(self):
        assert_equal(
            list(self.transformer.get_epoch_iterator()),
            [(numpy.ones((2, 2, 2)), numpy.array([0, 1])),
             (numpy.ones((2, 2, 2)), numpy.array([0, 1]))])

    def test_raises_error_on_nonexistent_source_name(self):
        assert_raises(KeyError, Rename, self.stream, {'Z': 'features'})

    def test_renames_axis_labels(self):
        assert_equal(self.transformer.axis_labels,
                     {'features': ('batch', 'width', 'height'),
                      'targets': ('batch',)})
Beispiel #3
0
class TestRename(object):
    def setUp(self):
        self.stream = DataStream(
            IndexableDataset(
                OrderedDict([('X', numpy.ones((4, 2, 2))),
                             ('y', numpy.array([0, 1, 0, 1]))]),
                axis_labels={'X': ('batch', 'width', 'height'),
                             'y': ('batch',)}),
            iteration_scheme=SequentialScheme(4, 2))
        self.transformer = Rename(
            self.stream, {'X': 'features', 'y': 'targets'})

    def test_renames_sources(self):
        assert_equal(self.transformer.sources, ('features', 'targets'))

    def test_leaves_data_unchanged(self):
        assert_equal(
            list(self.transformer.get_epoch_iterator()),
            [(numpy.ones((2, 2, 2)), numpy.array([0, 1])),
             (numpy.ones((2, 2, 2)), numpy.array([0, 1]))])

    def test_raises_error_on_nonexistent_source_name(self):
        assert_raises(KeyError, Rename, self.stream, {'Z': 'features'})

    def test_raises_on_invalid_kwargs(self):
        assert_raises(ValueError, Rename, self.stream,
                      {'X': 'features'}, on_non_existent='foo')

    def test_name_clash(self):
        assert_raises(KeyError, Rename, self.stream, {'X': 'y'})

    def test_name_swap(self):
        assert_equal(Rename(self.stream,
                            {'X': 'y', 'y': 'X'},
                            on_non_existent='ignore').sources,
                     ('y', 'X'))

    def test_raises_on_not_one_to_one(self):
        assert_raises(KeyError, Rename, self.stream, {'X': 'features',
                                                      'y': 'features'})

    def test_intentionally_ignore_missing(self):
        assert_equal(Rename(self.stream,
                            {'X': 'features', 'y': 'targets',
                             'Z': 'fudgesicle'},
                            on_non_existent='ignore').sources,
                     ('features', 'targets'))

    def test_not_one_to_one_ok_if_not_a_source_in_data_stream(self):
        assert_equal(Rename(self.stream,
                            {'X': 'features', 'y': 'targets',
                             'Z': 'targets'},
                            on_non_existent='ignore').sources,
                     ('features', 'targets'))

    def test_renames_axis_labels(self):
        assert_equal(self.transformer.axis_labels,
                     {'features': ('batch', 'width', 'height'),
                      'targets': ('batch',)})
Beispiel #4
0
def test_rename():
    stream = DataStream(IndexableDataset(
        OrderedDict([('X', numpy.ones((4, 2, 2))),
                     ('y', numpy.array([0, 1, 0, 1]))])),
                        iteration_scheme=SequentialScheme(4, 2))
    transformer = Rename(stream, {'X': 'features', 'y': 'targets'})
    assert_equal(transformer.sources, ('features', 'targets'))
    assert_equal(list(transformer.get_epoch_iterator()),
                 [(numpy.ones((2, 2, 2)), numpy.array([0, 1])),
                  (numpy.ones((2, 2, 2)), numpy.array([0, 1]))])
    assert_raises(ValueError, transformer.get_data, [0, 1])
    assert_raises(KeyError, Rename, stream, {'Z': 'features'})
def test_rename():
    stream = DataStream(
        IndexableDataset(OrderedDict([("X", numpy.ones((4, 2, 2))), ("y", numpy.array([0, 1, 0, 1]))])),
        iteration_scheme=SequentialScheme(4, 2),
    )
    transformer = Rename(stream, {"X": "features", "y": "targets"})
    assert_equal(transformer.sources, ("features", "targets"))
    assert_equal(
        list(transformer.get_epoch_iterator()),
        [(numpy.ones((2, 2, 2)), numpy.array([0, 1])), (numpy.ones((2, 2, 2)), numpy.array([0, 1]))],
    )
    assert_raises(ValueError, transformer.get_data, [0, 1])
    assert_raises(KeyError, Rename, stream, {"Z": "features"})
Beispiel #6
0
def test_rename():
    stream = DataStream(
        IndexableDataset(
            OrderedDict([('X', numpy.ones((4, 2, 2))),
                         ('y', numpy.array([0, 1, 0, 1]))])),
        iteration_scheme=SequentialScheme(4, 2))
    transformer = Rename(stream, {'X': 'features', 'y': 'targets'})
    assert_equal(transformer.sources, ('features', 'targets'))
    assert_equal(
        list(transformer.get_epoch_iterator()),
        [(numpy.ones((2, 2, 2)), numpy.array([0, 1])),
         (numpy.ones((2, 2, 2)), numpy.array([0, 1]))])
    assert_raises(ValueError, transformer.get_data, [0, 1])
    assert_raises(KeyError, Rename, stream, {'Z': 'features'})
class TestRename(object):
    def setUp(self):
        self.stream = DataStream(
            IndexableDataset(
                OrderedDict([('X', numpy.ones((4, 2, 2))),
                             ('y', numpy.array([0, 1, 0, 1]))]),
                axis_labels={'X': ('batch', 'width', 'height'),
                             'y': ('batch',)}),
            iteration_scheme=SequentialScheme(4, 2))
        self.transformer = Rename(
            self.stream, {'X': 'features', 'y': 'targets'})

    def test_renames_sources(self):
        assert_equal(self.transformer.sources, ('features', 'targets'))

    def test_leaves_data_unchanged(self):
        assert_equal(
            list(self.transformer.get_epoch_iterator()),
            [(numpy.ones((2, 2, 2)), numpy.array([0, 1])),
             (numpy.ones((2, 2, 2)), numpy.array([0, 1]))])

    def test_raises_error_on_nonexistent_source_name(self):
        assert_raises(KeyError, Rename, self.stream, {'Z': 'features'})

    def test_raises_on_invalid_kwargs(self):
        assert_raises(ValueError, Rename, self.stream,
                      {'X': 'features'}, on_non_existent='foo')

    def test_name_clash(self):
        assert_raises(KeyError, Rename, self.stream, {'X': 'y'})

    def test_not_really_a_name_clash(self):
        try:
            # This should not raise an error, because we're ignoring
            # non-existent sources. So renaming a non-existent source
            # cannot create a name clash.
            Rename(self.stream, {'foobar': 'y'}, on_non_existent='ignore')
        except KeyError:
            assert False   # Regression.

    def test_name_swap(self):
        assert_equal(Rename(self.stream,
                            {'X': 'y', 'y': 'X'},
                            on_non_existent='ignore').sources,
                     ('y', 'X'))

    def test_raises_on_not_one_to_one(self):
        assert_raises(KeyError, Rename, self.stream, {'X': 'features',
                                                      'y': 'features'})

    def test_intentionally_ignore_missing(self):
        assert_equal(Rename(self.stream,
                            {'X': 'features', 'y': 'targets',
                             'Z': 'fudgesicle'},
                            on_non_existent='ignore').sources,
                     ('features', 'targets'))

    def test_not_one_to_one_ok_if_not_a_source_in_data_stream(self):
        assert_equal(Rename(self.stream,
                            {'X': 'features', 'y': 'targets',
                             'Z': 'targets'},
                            on_non_existent='ignore').sources,
                     ('features', 'targets'))

    def test_renames_axis_labels(self):
        assert_equal(self.transformer.axis_labels,
                     {'features': ('batch', 'width', 'height'),
                      'targets': ('batch',)})