def test_batch(self): """ test batched dataset """ batchsize = 2 mapper = tf.build(self.ops) ds = build_source(self.sc_config) mapped_ds = tf.map(ds, mapper) batched_ds = tf.batch(mapped_ds, batchsize, True) for sample in batched_ds: out = sample self.assertEqual(len(out), batchsize)
def test_map(self): """ test transformer.map """ mapper = tf.build(self.ops) ds = build_source(self.sc_config) mapped_ds = tf.map(ds, mapper) ct = 0 for sample in mapped_ds: self.assertTrue(type(sample[0]) is np.ndarray) ct += 1 self.assertEqual(ct, mapped_ds.size())
def test_ops_all(self): """ test operators """ # ResizeImage ops_conf = [{ 'op': 'DecodeImage' }, { 'op': 'ResizeImage', 'target_size': 300, 'max_size': 1333 }] mapper = tf.build(ops_conf) self.assertTrue(mapper is not None) data = self.sample.copy() result0 = mapper(data) self.assertIsNotNone(result0['image']) self.assertEqual(len(result0['image'].shape), 3) # RandFlipImage ops_conf = [{'op': 'RandomFlipImage'}] mapper = tf.build(ops_conf) self.assertTrue(mapper is not None) result1 = mapper(result0) self.assertEqual(result1['image'].shape, result0['image'].shape) self.assertEqual(result1['gt_bbox'].shape, result0['gt_bbox'].shape) # NormalizeImage ops_conf = [{'op': 'NormalizeImage', 'is_channel_first': False}] mapper = tf.build(ops_conf) self.assertTrue(mapper is not None) result2 = mapper(result1) im1 = result1['image'] count = np.where(im1 <= 1)[0] if im1.dtype == 'float64': self.assertEqual(count, im1.shape[0] * im1.shape[1], im1.shape[2]) # ArrangeSample ops_conf = [{'op': 'ArrangeRCNN'}] mapper = tf.build(ops_conf) self.assertTrue(mapper is not None) result3 = mapper(result2) self.assertEqual(type(result3), tuple)
def test_ops_part3(self): """test Mixup and RandomInterp """ ops_conf = [{ 'op': 'DecodeImage', 'with_mixup': True, }, { 'op': 'MixupImage', }, { 'op': 'RandomInterpImage', 'target_size': 608 }] mapper = tf.build(ops_conf) self.assertTrue(mapper is not None) data = self.sample.copy() result = mapper(data) self.assertEqual(len(result['image'].shape), 3) self.assertGreater(result['gt_bbox'].shape[0], 0)
def test_ops_part2(self): """test Expand and RandomDistort """ ops_conf = [{ 'op': 'DecodeImage' }, { 'op': 'NormalizeBox' }, { 'op': 'ExpandImage', 'max_ratio': 1.5, 'prob': 1 }] mapper = tf.build(ops_conf) self.assertTrue(mapper is not None) data = self.sample.copy() result = mapper(data) self.assertEqual(len(result['image'].shape), 3) self.assertGreater(result['gt_bbox'].shape[0], 0)
def test_ops_part1(self): """test Crop and Resize """ ops_conf = [{ 'op': 'DecodeImage' }, { 'op': 'NormalizeBox' }, { 'op': 'CropImage', 'batch_sampler': [[1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0], [1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 0.0], [1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 0.0], [1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 0.0], [1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 0.0], [1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 0.0], [1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0]] }] mapper = tf.build(ops_conf) self.assertTrue(mapper is not None) data = self.sample.copy() result = mapper(data) self.assertEqual(len(result['image'].shape), 3)
def test_parallel_map(self): """ test transformer.map with concurrent workers """ mapper = tf.build(self.ops) ds = build_source(self.sc_config) worker_conf = {'WORKER_NUM': 2, 'use_process': True} mapped_ds = tf.map(ds, mapper, worker_conf) ct = 0 for sample in mapped_ds: self.assertTrue(type(sample[0]) is np.ndarray) ct += 1 self.assertTrue(mapped_ds.drained()) self.assertEqual(ct, mapped_ds.size()) mapped_ds.reset() ct = 0 for sample in mapped_ds: self.assertTrue(type(sample[0]) is np.ndarray) ct += 1 self.assertEqual(ct, mapped_ds.size())