Beispiel #1
0
    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)
Beispiel #2
0
    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\)>")
Beispiel #3
0
    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)
Beispiel #4
0
  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)
Beispiel #5
0
  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)
Beispiel #6
0
  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>")
Beispiel #7
0
 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)
Beispiel #8
0
 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)