def test_conv_ext_false_bias_term(self, weights_biases_mock, layout_attrs_mock): weights_biases_mock.return_value = {} layout_attrs_mock.return_value = {} params = { 'pad': 10, 'kernel_size': 11, 'stride': 12, 'dilation': 13, 'group': 14, 'num_output': 15, 'bias_term': False } node = PB({'pb': FakeConvProtoLayer(FakeMultiParam(params))}) res = DeconvFrontExtractor.extract(node) res = node exp_res = { 'op': 'Deconv2D', 'pad': np.array([[0, 0], [0, 0], [10, 10], [10, 10]]), 'pad_spatial_shape': np.array([[10, 10], [10, 10]]), 'stride': np.array([1, 1, 12, 12]), 'kernel_spatial': np.array([11, 11]), 'dilation': np.array([1, 1, 13, 13]), 'group': 14, 'bias_addable': True, 'bias_term': False, } self.assertTrue(weights_biases_mock.called) self.assertTrue(layout_attrs_mock.called) for key in exp_res.keys(): if key in ('pad', 'pad_spatial_shape', 'stride', 'kernel_spatial', 'dilation', 'bias_term'): np.testing.assert_equal(res[key], exp_res[key]) else: self.assertEqual(res[key], exp_res[key])
def test_conv_ext_empty_numbers(self, weights_biases_mock, layout_attrs_mock): weights_biases_mock.return_value = {} layout_attrs_mock.return_value = {} params = { 'pad': None, 'kernel_size': None, 'stride': None, 'dilation': None, 'group': 14, 'num_output': 15, 'bias_term': True, 'pad_w': 3, 'pad_h': 4, 'kernel_w': 5, 'kernel_h': 6, 'stride_h': 3, 'stride_w': 2, } node = PB({'pb': FakeConvProtoLayer(FakeMultiParam(params))}) res = DeconvFrontExtractor.extract(node) res = node exp_res = { 'op': 'Deconv2D', 'pad': np.array([[0, 0], [0, 0], [4, 4], [3, 3]]), 'pad_spatial_shape': np.array([[4, 4], [3, 3]]), 'stride': np.array([1, 1, 3, 2]), 'kernel_spatial': np.array([6, 5]), 'dilation': np.array([1, 1, 1, 1]), 'group': 14, 'bias_addable': True, } self.assertTrue(weights_biases_mock.called) self.assertTrue(layout_attrs_mock.called) for key in exp_res.keys(): if key in ('pad', 'pad_spatial_shape', 'stride', 'kernel_spatial', 'dilation'): np.testing.assert_equal(res[key], exp_res[key]) else: self.assertEqual(res[key], exp_res[key])