0

如何从冻结的 TensorFlow 图中制作 Op?与 TF Hub 中相同的技巧?

with tf.Graph().as_default():
  module_url = "https://tfhub.dev/google/nnlm-en-dim128-with-normalization/1"
  embed = hub.Module(module_url)
  embeddings = embed(["A long sentence", "A sentence"])

来自 TF Hub的embed () 可以作为自定义操作自由使用,在图中的任何位置。我正在寻找相同的,只是使用我自己的冻结图,而不是 module_url,来自 .pb 文件。在导入的图表末尾添加操作或编辑图表很容易,但是将导入的图表用作自定义操作会更清晰。

我查看了 TF Hub 的实现,但它不是太简洁。而且看起来没有其他示例代码。请问,有人可以给出或指出更好的示例代码吗?

4

1 回答 1

1

在调用中应用上面的 hub.Module 会引入embed(...)一个由许多 TF 操作组成的整个子图。它在 Python 代码中看起来是自包含的,因为所有工作都隐藏在一个函数调用中,但这里不涉及自定义操作。

也许您的需求可以通过创建自己的 hub.Module 来满足?这并不难,请参阅tensorflow.org/hub/creating,您可以从文件系统中使用它。

有一些关于如何使用的较旧示例tf.import_meta_graph()(包括tf.Graph并支持检查点变量的集合)或更基本的示例tf.import_graph_def()(通常与冻结图定义一起使用,例如在label_image.py中),但是 hub.Module 处理了许多差距以及这些旧方法中的微妙问题。

于 2018-08-03T08:35:57.090 回答