当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.io.decode_json_example用法及代码示例


将 JSON-encoded 示例记录转换为二进制协议缓冲区字符串。

用法

tf.io.decode_json_example(
    json_examples, name=None
)

参数

  • json_examples 包含 json-serialized tf.Example protos 的字符串张量。
  • name 操作的名称。

返回

  • 包含 binary-serialized tf.Example protos 的字符串张量。

抛出

注意:这是不是一个通用的 JSON 解析操作。

此操作将 JSON-serialized tf.train.Example(可能使用 json_format.MessageToJson 创建,遵循标准 JSON 映射)转换为 binary-serialized tf.train.Example(相当于 Example.SerializeToString()),适合使用 tf. io.parse_example。

这是一个tf.train.Example 原型:

example = tf.train.Example(
  features=tf.train.Features(
      feature={
          "a":tf.train.Feature(
              int64_list=tf.train.Int64List(
                  value=[1, 1, 3]))}))

在这里它被转换为 JSON:

from google.protobuf import json_format
example_json = json_format.MessageToJson(example)
print(example_json)
{
  "features":{
    "feature":{
      "a":{
        "int64List":{
          "value":[
            "1",
            "1",
            "3"
          ]
        }
      }
    }
  }
}

此操作将上述 json 字符串转换为二进制 proto:

example_binary = tf.io.decode_json_example(example_json)
example_binary.numpy()
b'\n\x0f\n\r\n\x01a\x12\x08\x1a\x06\x08\x01\x08\x01\x08\x03'

OP 适用于 andy 形状的弦张量:

tf.io.decode_json_example([
    [example_json, example_json],
    [example_json, example_json]]).shape.as_list()
[2, 2]

由此产生的 binary-string 等效于 Example.SerializeToString() ,并且可以使用 tf.io.parse_example 和相关函数转换为张量:

tf.io.parse_example(
  serialized=[example_binary.numpy(),
             example.SerializeToString()],
  features = {'a':tf.io.FixedLenFeature(shape=[3], dtype=tf.int64)})
{'a':<tf.Tensor:shape=(2, 3), dtype=int64, numpy=
 array([[1, 1, 3],
        [1, 1, 3]])>}

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.io.decode_json_example。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。