def test_0d_not_type_shape(self): pb_tensor = PB({ 'dtype': 3, 'tensor_content': b'\x01\x00\x00\x00', }) tf_dtype = pb_tensor.dtype shape = np.array([3]) ref = [1, 1, 1] res = tf_tensor_content(tf_dtype, shape, pb_tensor) self.assertTrue(np.all(res == ref))
def test_0d_type_no_shape(self): pb_tensor = PB({ 'dtype': 3, 'int_val': [5], }) tf_dtype = pb_tensor.dtype shape = np.array([]) ref = 5 res = tf_tensor_content(tf_dtype, shape, pb_tensor) self.assertTrue(res == ref)
def extract(cls, node): pb_tensor = node.pb.attr["value"].tensor shape = tf_tensor_shape(pb_tensor.tensor_shape) attrs = { 'shape': shape, 'value': tf_tensor_content(pb_tensor.dtype, shape, pb_tensor), 'data_type': tf_dtype_extractor(pb_tensor.dtype), } Const.update_node_stat(node, attrs) return cls.enabled
def test_list_type_shape(self): pb_tensor = PB({ 'dtype': 3, 'int_val': np.array([1, 2, 3, 4, 5], dtype=np.int32) }) tf_dtype = pb_tensor.dtype shape = np.array([10]) ref = [1, 2, 3, 4, 5, 5, 5, 5, 5, 5] res = tf_tensor_content(tf_dtype, shape, pb_tensor) self.assertTrue(np.all(res == ref))
def test_nd_type_no_shape(self): pb_tensor = PB({ 'dtype': 3, 'int_val': [[1, 2, 3], [4, 5, 6]], }) tf_dtype = pb_tensor.dtype shape = np.array([2, 3]) ref = [[1, 2, 3], [4, 5, 6]] res = tf_tensor_content(tf_dtype, shape, pb_tensor) self.assertTrue(np.all(res == ref))
def tf_const_ext(pb): pb_tensor = pb.attr["value"].tensor result = { 'data_type': tf_dtype_extractor(pb_tensor.dtype), 'shape': tf_tensor_shape(pb_tensor.tensor_shape), 'infer': tf_const_infer } result['value'] = tf_tensor_content(pb_tensor.dtype, result['shape'], pb_tensor) log.debug('Constant extractor for node gives shape = {} and value.shape = {}'.format(result['shape'], result['value'].shape)) return result
def test_nd_not_type_no_shape(self): pb_tensor = PB({ 'dtype': 3, 'tensor_content': b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00', }) tf_dtype = pb_tensor.dtype shape = np.array([2, 3]) ref = [[1, 2, 3], [4, 5, 6]] res = tf_tensor_content(tf_dtype, shape, pb_tensor) self.assertTrue(np.all(res == ref))
def test_list_not_type_shape(self): pb_tensor = PB({ 'dtype': 3, 'tensor_content': b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00' }) tf_dtype = pb_tensor.dtype shape = np.array([10]) ref = [1, 2, 3, 4, 5, 5, 5, 5, 5, 5] res = tf_tensor_content(tf_dtype, shape, pb_tensor) self.assertTrue(np.all(res == ref))
def test_list_not_type_no_shape(self): pb_tensor = PB( dict( dtype=3, tensor_content= b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00' )) tf_dtype = pb_tensor.dtype shape = np.array([5]) ref = [1, 2, 3, 4, 5] res = tf_tensor_content(tf_dtype, shape, pb_tensor) self.assertTrue(np.all(res == ref))
def test_str_decode_list(self): pb_tensor = PB({ 'dtype': 7, 'string_val': [b'\377\330\377\377\330\377'], }) shape = int64_array([]) warning_message = 'ERROR:root:Failed to parse a tensor with Unicode characters. Note that Inference Engine ' \ 'does not support string literals, so the string constant should be eliminated from the ' \ 'graph.' with self.assertLogs(log.getLogger(), level="ERROR") as cm: result = tf_tensor_content(pb_tensor.dtype, shape, pb_tensor) self.assertEqual([warning_message, warning_message], cm.output)
def test_str_decode(self): pb_tensor = PB({ 'dtype': 7, 'string_val': [b"\037\000\036\000\002\000\303\237\035\000\002"] }) tf_dtype = pb_tensor.dtype shape = int64_array([1]) warning_message = 'ERROR:root:Failed to parse a tensor with Unicode characters. Note that Inference Engine ' \ 'does not support string literals, so the string constant should be eliminated from the ' \ 'graph.' ref_val = np.array([b'\x1f\x00\x1e\x00\x02\x00\xc3\x9f\x1d\x00\x02']) with self.assertLogs(log.getLogger(), level="ERROR") as cm: result = tf_tensor_content(tf_dtype, shape, pb_tensor) self.assertEqual([warning_message], cm.output) self.assertEqual(ref_val, result)