def test_serialize_deserialize_tensor_value(self): x = tf.constant(10.0).numpy() value_proto, value_type = executor_service_utils.serialize_tensor_value(x) self.assertIsInstance(value_proto, executor_pb2.Value) self.assertEqual(str(value_type), 'float32') y, type_spec = executor_service_utils.deserialize_tensor_value(value_proto) self.assertEqual(str(type_spec), 'float32') self.assertTrue(np.array_equal(x, y))
def test_serialize_deserialize_tensor_value_with_nontrivial_shape(self): x = tf.constant([10, 20, 30]).numpy() value_proto, value_type = executor_service_utils.serialize_tensor_value( x, (tf.int32, [3])) self.assertIsInstance(value_proto, executor_pb2.Value) self.assertEqual(str(value_type), 'int32[3]') y, type_spec = executor_service_utils.deserialize_tensor_value(value_proto) self.assertEqual(str(type_spec), 'int32[3]') self.assertTrue(np.array_equal(x, y))
def test_serialize_deserialize_tensor_value_with_different_dtype(self): x = tf.constant(10.0).numpy() value_proto, value_type = ( executor_service_utils.serialize_tensor_value(x, tf.int32)) self.assertIsInstance(value_proto, executor_pb2.Value) self.assertEqual(str(value_type), 'int32') y, type_spec = executor_service_utils.deserialize_tensor_value(value_proto) self.assertEqual(str(type_spec), 'int32') self.assertEqual(y, 10)
def test_serialize_deserialize_tensor_value_with_bad_shape(self): x = tf.constant([10, 20, 30]).numpy() with self.assertRaises(TypeError): executor_service_utils.serialize_tensor_value(x, tf.int32)