【问题标题】:java api for feeding tfrecords bytes to tensorflow model用于将 tfrecords 字节提供给 tensorflow 模型的 java api
【发布时间】:2018-09-28 03:38:42
【问题描述】:
有没有人知道高级 api 是否存在于 java 中,用于直接读取 tfrecords 并提供给 tensorflow savedModel 。 Python api 允许将 example.proto (tfrecords) 和张量提供给 tf 模型进行推理。我在 java 中看到的唯一 api 是创建原始张量,有没有一种类似于 python sdk 的方法,我可以直接将 tfrecords(example.proto_ 也提供给 java 中保存的模型包。
【问题讨论】:
标签:
tensorflow
tensorflow-serving
tensor
tensorflow-datasets
tensorflow-estimator
【解决方案1】:
我刚刚遇到了同样的情况,我使用 Java Apache Beam 中的TFRecordIO 来读取记录。例如,
pipeline
.apply(TFRecordIO.read().from(dataPath))
.apply(ParDo.of(new ModelEvaluationFn()));
在ModelEvaluationFn 内部,我使用savedModel 进行评分。使用 Java Apache Beam,你可以在本地运行,在 GCP Dataflow、Spark、Flink 等上运行。但如果你直接使用 Spark,则有spark-tensorflow-connector。
我遇到的另一件事是如何在 Java 中解析 tfrecord,因为我需要通过使用一些列值来获取标签值和分组来获取细分分数。 org.tensorlfow/proto 包可以帮助你做到这一点。以下是示例:example1、example2。本质上,它是Example.parseFrom(byte[])。