def test_bn_ext_ml_three_blobs(self): mean_blob = np.array([1., 2.]) variance_blob = np.array([3., 4.]) scale_blob = np.array([ 5., ]) blobs = [mean_blob, variance_blob, scale_blob] res = batch_norm_ext(FakeBNProtoLayer(10), FakeModelLayer(blobs)) exp_res = { 'type': 'BatchNormalization', 'eps': 10, 'infer': copy_shape_infer, 'mean': mean_blob * 0.2, 'variance': variance_blob * 0.2, 'embedded_inputs': [(1, 'gamma', { 'bin': 'gamma' }), (2, 'beta', { 'bin': 'beta' }), (3, 'mean', { 'bin': 'biases' }), (4, 'variance', { 'bin': 'weights' })] } for i in exp_res: if i in ('mean', 'variance'): np.testing.assert_array_equal(res[i], exp_res[i]) else: self.assertEqual(res[i], exp_res[i])
def test_bn_ext_no_ml(self): res = batch_norm_ext(FakeBNProtoLayer(10), None) exp_res = { 'op': 'BatchNormalization', 'type': 'BatchNormalization', 'eps': 10, 'infer': copy_shape_infer } self.assertEqual(res, exp_res)