()
| 1589 | |
| 1590 | |
| 1591 | def test_executor_meta(): |
| 1592 | class TestPipeline(Pipeline): |
| 1593 | def __init__(self, batch_size, num_threads, device_id, num_gpus, seed): |
| 1594 | super(TestPipeline, self).__init__( |
| 1595 | batch_size, |
| 1596 | num_threads, |
| 1597 | device_id, |
| 1598 | enable_memory_stats=True, |
| 1599 | exec_async=False, |
| 1600 | exec_pipelined=False, |
| 1601 | ) |
| 1602 | self.input = ops.readers.Caffe( |
| 1603 | path=caffe_db_folder, shard_id=device_id, num_shards=num_gpus, seed=seed |
| 1604 | ) |
| 1605 | self.decode = ops.decoders.ImageRandomCrop( |
| 1606 | device="mixed", output_type=types.RGB, seed=seed |
| 1607 | ) |
| 1608 | self.res = ops.Resize(device="gpu", resize_x=224, resize_y=224) |
| 1609 | self.cmnp = ops.CropMirrorNormalize( |
| 1610 | device="gpu", |
| 1611 | output_dtype=types.FLOAT, |
| 1612 | crop=(224, 224), |
| 1613 | mean=[128.0, 128.0, 128.0], |
| 1614 | std=[1.0, 1.0, 1.0], |
| 1615 | ) |
| 1616 | self.coin = ops.random.CoinFlip(seed=seed) |
| 1617 | |
| 1618 | def define_graph(self): |
| 1619 | self.jpegs, self.labels = self.input() |
| 1620 | images = self.decode(self.jpegs) |
| 1621 | resized_images = self.res(images) |
| 1622 | mirror = self.coin() |
| 1623 | output = self.cmnp(resized_images, mirror=mirror) |
| 1624 | return (output, resized_images, self.labels) |
| 1625 | |
| 1626 | random_seed = 123456 |
| 1627 | batch_size = 10 |
| 1628 | test_pipe = TestPipeline( |
| 1629 | batch_size=batch_size, num_threads=1, device_id=0, num_gpus=1, seed=random_seed |
| 1630 | ) |
| 1631 | test_pipe.run() |
| 1632 | meta = test_pipe.executor_statistics() |
| 1633 | # all operators (readers.Caffe, decoders.ImageRandomCrop, Resize, CropMirrorNormalize, |
| 1634 | # CoinFlip) + make_contiguous * 3 (all outputs) |
| 1635 | assert len(meta) == 8 |
| 1636 | for k in meta.keys(): |
| 1637 | if "CropMirrorNormalize" in k: |
| 1638 | crop_meta = meta[k] |
| 1639 | assert crop_meta["real_memory_size"] == crop_meta["reserved_memory_size"] |
| 1640 | # size of crop * num_of_channels * batch_size * data_size |
| 1641 | assert crop_meta["real_memory_size"][0] == 224 * 224 * 3 * batch_size * 4 |
| 1642 | for k in meta.keys(): |
| 1643 | if "CoinFlip" in k: |
| 1644 | coin_meta = meta[k] |
| 1645 | assert coin_meta["real_memory_size"] == coin_meta["reserved_memory_size"] |
| 1646 | # batch_size * data_size |
| 1647 | assert coin_meta["real_memory_size"][0] == batch_size * 4 |
| 1648 | for k, v in meta.items(): |
nothing calls this directly
no test coverage detected