class testMetaBatchBuilder(unittest.TestCase):
    def setUp(self):
        self.target = MetaBatchBuilder()
        self.data_shape = (4,1,1)
    
    def test_dataMeanDoesNotConsiderTestSet(self):
        
        train = [self.makeImage([10, 20, 40, 80]),
                   self.makeImage([20, 40, 40, 60])]
        valid = [self.makeImage([10, 20, 40, 80]),
                   self.makeImage([20, 40, 40, 60])]
        test = [self.makeImage([1000, 2000, 4000, 8000]),
                   self.makeImage([2000, 4000, 4000, 6000])]
        
        dataset = (train, valid, test)
        classesNames = ['myname']
        classes = [0]
        
        expected = {}
        expected['num_vis'] = 4
        expected['data_shape'] = self.data_shape
        expected['data_in_rows']  = True
        expected['label_names'] = classesNames
        expected['data_mean'] = arrayEqualsTo(numpy.asarray([15, 30, 40, 70]).reshape(-1,1))

        self.assertEqual(expected, self.target.build(dataset, classes, classesNames))

    def test_OnlySelectedClassesAreStored(self):
        
        train = self.makeZeroedImages(qty=2, size=4)
        valid = self.makeZeroedImages(qty=2, size=4)
        test = self.makeZeroedImages(qty=2, size=4)
        
        dataset = (train, valid, test)
        classesNames = ['class0', 'class1', 'class2', 'class3']
        classes = [2,1]
        
        expected = {}
        expected['num_vis'] = 4
        expected['data_in_rows']  = True
        expected['data_shape'] = self.data_shape
        expected['label_names'] = ['class2', 'class1']
        expected['data_mean'] = arrayEqualsTo(numpy.zeros(4).reshape(-1,1))

        self.assertEqual(expected, self.target.build(dataset, classes, classesNames))

    def makeZeroedImages(self, qty, size):
        return [self.makeImage(numpy.zeros((size))) for i in range(qty)]

    def makeImage(self, array):
        image = Mock()
        image.getArray.return_value = numpy.asarray(array)
        image.getShape.return_value = self.data_shape
        return image
 def Create(nTrainingBatches = 1):
     return ConvnetBatchCreator(BatchBuilder(SingleBatchBuilder(), 
                                             MetaBatchBuilder(), 
                                             nTrainingBatches),
                                BatchRepository(FileSystem(), 
                                                cPickleSerializer()))
Exemple #3
0
 def setUp(self):
     self.target = MetaBatchBuilder()
     self.data_shape = (4, 1, 1)
Exemple #4
0
class testMetaBatchBuilder(unittest.TestCase):
    def setUp(self):
        self.target = MetaBatchBuilder()
        self.data_shape = (4, 1, 1)

    def test_dataMeanDoesNotConsiderTestSet(self):

        train = [
            self.makeImage([10, 20, 40, 80]),
            self.makeImage([20, 40, 40, 60])
        ]
        valid = [
            self.makeImage([10, 20, 40, 80]),
            self.makeImage([20, 40, 40, 60])
        ]
        test = [
            self.makeImage([1000, 2000, 4000, 8000]),
            self.makeImage([2000, 4000, 4000, 6000])
        ]

        dataset = (train, valid, test)
        classesNames = ['myname']
        classes = [0]

        expected = {}
        expected['num_vis'] = 4
        expected['data_shape'] = self.data_shape
        expected['data_in_rows'] = True
        expected['label_names'] = classesNames
        expected['data_mean'] = arrayEqualsTo(
            numpy.asarray([15, 30, 40, 70]).reshape(-1, 1))

        self.assertEqual(expected,
                         self.target.build(dataset, classes, classesNames))

    def test_OnlySelectedClassesAreStored(self):

        train = self.makeZeroedImages(qty=2, size=4)
        valid = self.makeZeroedImages(qty=2, size=4)
        test = self.makeZeroedImages(qty=2, size=4)

        dataset = (train, valid, test)
        classesNames = ['class0', 'class1', 'class2', 'class3']
        classes = [2, 1]

        expected = {}
        expected['num_vis'] = 4
        expected['data_in_rows'] = True
        expected['data_shape'] = self.data_shape
        expected['label_names'] = ['class2', 'class1']
        expected['data_mean'] = arrayEqualsTo(numpy.zeros(4).reshape(-1, 1))

        self.assertEqual(expected,
                         self.target.build(dataset, classes, classesNames))

    def makeZeroedImages(self, qty, size):
        return [self.makeImage(numpy.zeros((size))) for i in range(qty)]

    def makeImage(self, array):
        image = Mock()
        image.getArray.return_value = numpy.asarray(array)
        image.getShape.return_value = self.data_shape
        return image
 def setUp(self):
     self.target = MetaBatchBuilder()
     self.data_shape = (4,1,1)