def test_match_io_fmap_range(self): ''' ofmap and ifmap range match. ''' for wlkey in self.layers: layer = self.layers[wlkey] for dnkey in self.dim_nodes: for part in self._gen_partition(wlkey=wlkey, dnkey=dnkey, optkey='NOINPP'): for pidx in part.gen_pidx(): ofr = partition.part_layer_ofmap_range( layer, self.batch_size, part, pidx) ifr = partition.part_layer_ifmap_range( layer, self.batch_size, part, pidx) self.assertEqual(ofr.size('b'), ifr.size('b')) if isinstance(layer, ConvLayer): ol = ConvLayer(nifm=ifr.size('n'), nofm=ofr.size('n'), sofm=(ofr.size('h'), ofr.size('w')), sfil=(layer.hfil, layer.wfil), strd=(layer.htrd, layer.wtrd)) il = ol.input_layer() self.assertEqual(il.nofm, ifr.size('n')) elif isinstance(layer, LocalRegionLayer): nofm_beg, nofm_end = ofr.beg_end('n')[0] nifm_beg, nifm_end = ifr.beg_end('n')[0] self.assertEqual(nifm_beg, max(0, \ nofm_beg - layer.nreg // 2)) self.assertEqual(nifm_end, min(layer.nifm, \ nofm_end + layer.nreg - layer.nreg // 2)) ol = LocalRegionLayer( nofm=ofr.size('n'), sofm=(ofr.size('h'), ofr.size('w')), nreg=layer.nreg, sreg=(layer.hreg, layer.wreg), strd=(layer.htrd, layer.wtrd)) il = ol.input_layer() self.assertEqual(il.hofm, ifr.size('h')) self.assertEqual(il.wofm, ifr.size('w'))
def test_input_layer(self): ''' Get input layer. ''' clayer = ConvLayer(3, 64, [28, 14], 3, strd=2) inlayer = clayer.input_layer() self.assertIsInstance(inlayer, Layer) self.assertEqual(inlayer.nofm, 3, 'ConvLayer: input_layer: nofm') self.assertEqual(inlayer.hofm, (28 - 1) * 2 + 3, 'ConvLayer: input_layer: hofm') self.assertEqual(inlayer.wofm, (14 - 1) * 2 + 3, 'ConvLayer: input_layer: wofm')
def test_ifmap(self): ''' Get ifmap. ''' clayer = ConvLayer(3, 64, [28, 14], 3, strd=2) inlayer = clayer.input_layer() self.assertIsInstance(inlayer, Layer) self.assertEqual(inlayer.nofm, clayer.nifm, 'ConvLayer: nifm') self.assertEqual(inlayer.hofm, clayer.hifm, 'ConvLayer: hifm') self.assertEqual(inlayer.wofm, clayer.wifm, 'ConvLayer: wifm') llayer = LocalRegionLayer(64, 28, 1, 3, strd=2) inlayer = llayer.input_layer() self.assertIsInstance(inlayer, Layer) self.assertEqual(inlayer.nofm, llayer.nifm, 'LocalRegionLayer: nifm') self.assertEqual(inlayer.hofm, llayer.hifm, 'LocalRegionLayer: hifm') self.assertEqual(inlayer.wofm, llayer.wifm, 'LocalRegionLayer: wifm')