如何从冻结的TensorFlow图制作Op?

时间:2018-08-03 00:56:55

标签: tensorflow tensorflow-hub

如何从冻结的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 ()可以在图形中的任意位置自由用作自定义操作。我正在寻找相同的东西,只是从.pb文件中使用我自己的冻结图而不是module_url。在导入的图形的末尾添加操作或编辑图形很容易,但是使用导入的图形作为自定义操作会更加清晰。

我已经看过TF Hub的实现,但是它不太简洁。而且看起来还没有其他示例代码。请,有人可以提供或指出更好的示例代码吗?

1 个答案:

答案 0 :(得分:1)

在对embed(...)的调用中应用hub.Module会带来整个子图,其中包括许多TF操作。它看起来只是在Python代码中是独立的,因为所有工作都隐藏在一个函数调用中,但是这里没有涉及自定义操作。

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

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