def testParsingTensorInfoProtoMaps(self): with tf.compat.v1.Graph().as_default(): sig = _make_signature( { "x": tf.compat.v1.placeholder(tf.string, [2]), }, { "y": tf.compat.v1.placeholder(tf.int32, [2]), "z": tf.compat.v1.sparse_placeholder(tf.float32, [2, 10]), }) inputs = tensor_info.parse_tensor_info_map(sig.inputs) self.assertEqual(set(inputs.keys()), set(["x"])) self.assertEqual(inputs["x"].get_shape(), [2]) self.assertEqual(inputs["x"].dtype, tf.string) self.assertFalse(inputs["x"].is_sparse) outputs = tensor_info.parse_tensor_info_map(sig.outputs) self.assertEqual(set(outputs.keys()), set(["y", "z"])) self.assertEqual(outputs["y"].get_shape(), [2]) self.assertEqual(outputs["y"].dtype, tf.int32) self.assertFalse(outputs["y"].is_sparse) self.assertEqual(outputs["z"].get_shape(), [2, 10]) self.assertEqual(outputs["z"].dtype, tf.float32) self.assertTrue(outputs["z"].is_sparse)
def testRepr(self): with tf.compat.v1.Graph().as_default(): sig = _make_signature( { "x": tf.compat.v1.placeholder(tf.string, [2]), }, { "y": tf.compat.v1.placeholder(tf.int32, [2]), "z": tf.compat.v1.sparse_placeholder(tf.float32, [2, 10]), "r": tf.compat.v1.ragged.placeholder(tf.float32, 1, ()), }) outputs = tensor_info.parse_tensor_info_map(sig.outputs) self.assertEqual( repr(outputs["y"]), "<hub.ParsedTensorInfo shape=(2,) dtype=int32 is_sparse=False>" ) self.assertEqual( repr(outputs["z"]), "<hub.ParsedTensorInfo shape=(2, 10) dtype=float32 is_sparse=True>" ) self.assertRegex( repr(outputs["r"]), r"<hub.ParsedTensorInfo type_spec=RaggedTensorSpec\(TensorShape\(\[" r"(None, None|Dimension\(None\), Dimension\(None\))" r"\]\), tf.float32, 1, tf.int64\)>")
def testParsingTensorInfoProtoMaps(self): with tf.compat.v1.Graph().as_default(): sig = _make_signature( { "x": tf.compat.v1.placeholder(tf.string, [2]), }, { "y": tf.compat.v1.placeholder(tf.int32, [2]), "z": tf.compat.v1.sparse_placeholder(tf.float32, [2, 10]), "r": tf.compat.v1.ragged.placeholder(tf.float32, 1, ()), }) inputs = tensor_info.parse_tensor_info_map(sig.inputs) self.assertEqual(set(inputs.keys()), set(["x"])) self.assertEqual(inputs["x"].get_shape(), [2]) self.assertEqual(inputs["x"].dtype, tf.string) self.assertFalse(inputs["x"].is_sparse) self.assertFalse(inputs["x"].is_composite) self.assertEqual(inputs["x"].type_spec, tf.TensorSpec([2], tf.string)) self.assertTrue(inputs["x"].is_supported_type) outputs = tensor_info.parse_tensor_info_map(sig.outputs) self.assertEqual(set(outputs.keys()), set(["y", "z", "r"])) self.assertEqual(outputs["y"].get_shape(), [2]) self.assertEqual(outputs["y"].dtype, tf.int32) self.assertFalse(outputs["y"].is_sparse) self.assertFalse(outputs["y"].is_composite) self.assertEqual(outputs["y"].type_spec, tf.TensorSpec([2], tf.int32)) self.assertTrue(outputs["y"].is_supported_type) self.assertEqual(outputs["z"].get_shape(), [2, 10]) self.assertEqual(outputs["z"].dtype, tf.float32) self.assertTrue(outputs["z"].is_sparse) self.assertTrue(outputs["z"].is_composite) self.assertEqual(outputs["z"].type_spec, tf.SparseTensorSpec([2, 10], tf.float32)) self.assertTrue(outputs["z"].is_supported_type) self.assertEqual(outputs["r"].get_shape().as_list(), [None, None]) self.assertEqual(outputs["r"].dtype, tf.float32) self.assertFalse(outputs["r"].is_sparse) self.assertTrue(outputs["r"].is_composite) self.assertEqual(outputs["r"].type_spec, tf.RaggedTensorSpec([None, None], tf.float32)) self.assertTrue(outputs["r"].is_supported_type)
def testParsingTensorInfoProtoMaps(self): sig = _make_signature({ "x": tf.placeholder(tf.string, [2]), }, { "y": tf.placeholder(tf.int32, [2]), "z": tf.sparse_placeholder(tf.float32, [2, 10]), }) inputs = tensor_info.parse_tensor_info_map(sig.inputs) self.assertEquals(set(inputs.keys()), set(["x"])) self.assertEquals(inputs["x"].get_shape(), [2]) self.assertEquals(inputs["x"].dtype, tf.string) self.assertFalse(inputs["x"].is_sparse) outputs = tensor_info.parse_tensor_info_map(sig.outputs) self.assertEquals(set(outputs.keys()), set(["y", "z"])) self.assertEquals(outputs["y"].get_shape(), [2]) self.assertEquals(outputs["y"].dtype, tf.int32) self.assertFalse(outputs["y"].is_sparse) self.assertEquals(outputs["z"].get_shape(), [2, 10]) self.assertEquals(outputs["z"].dtype, tf.float32) self.assertTrue(outputs["z"].is_sparse)
def testConvertTensors(self): a = tf.placeholder(tf.int32, [None]) protomap = _make_signature({"a": a}, {}).inputs targets = tensor_info.parse_tensor_info_map(protomap) # convert constant in0 = [1, 2, 3] output = tensor_info.convert_dict_to_compatible_tensor({"a": in0}, targets) self.assertEquals(output["a"].dtype, a.dtype) # check sparsity in1 = tf.sparse_placeholder(tf.int32, []) with self.assertRaisesRegexp(TypeError, "dense"): tensor_info.convert_dict_to_compatible_tensor({"a": in1}, targets)
def testRepr(self): sig = _make_signature({ "x": tf.placeholder(tf.string, [2]), }, { "y": tf.placeholder(tf.int32, [2]), "z": tf.sparse_placeholder(tf.float32, [2, 10]), }) outputs = tensor_info.parse_tensor_info_map(sig.outputs) self.assertEquals( repr(outputs["y"]), "<hub.ParsedTensorInfo shape=(2,) dtype=int32 is_sparse=False>") self.assertEquals( repr(outputs["z"]), "<hub.ParsedTensorInfo shape=(2, 10) dtype=float32 is_sparse=True>")
def get_output_info_dict(self, signature=None, tags=None): signature_def = self._get_signature_def(signature, tags) return tensor_info.parse_tensor_info_map(signature_def.outputs)
def get_output_info_dict(self, signature=None, tags=None): signature_def = self._get_signature_def(signature, tags) return tensor_info.parse_tensor_info_map(signature_def.outputs)