Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从现有检查点创建集线器模块_Python_Python 3.x_Tensorflow_Tensorflow Serving_Tensorflow Hub - Fatal编程技术网

Python 从现有检查点创建集线器模块

Python 从现有检查点创建集线器模块,python,python-3.x,tensorflow,tensorflow-serving,tensorflow-hub,Python,Python 3.x,Tensorflow,Tensorflow Serving,Tensorflow Hub,是否可以从现有检查点创建hub模块,而不链接培训代码?是的,绝对可以。您需要一个会话(1)一个模块,(2)在其变量中包含正确的值。不管这些是来自实际训练还是仅仅恢复一个检查点。给定一个对TensorFlow Hub一无所知的用于模型构建的Python库,您可以使用一个工具导出到Hub模块,如下所示: import tensorflow_hub as hub import your_library as build_model_body def module_fn(): inputs = t

是否可以从现有检查点创建
hub
模块,而不链接培训代码?

是的,绝对可以。您需要一个会话(1)一个模块,(2)在其变量中包含正确的值。不管这些是来自实际训练还是仅仅恢复一个检查点。给定一个对TensorFlow Hub一无所知的用于模型构建的Python库,您可以使用一个工具导出到Hub模块,如下所示:

import tensorflow_hub as hub
import your_library as build_model_body

def module_fn():
  inputs = tf.placeholder(...)
  logits = build_model_body(inputs)
  hub.add_signature(inputs=inputs, outputs=logits)

def main(_):
  spec = hub.create_module_spec(module_fn)
  # Supply a checkpoint trained on a model from the same Python code.
  checkpoint_path = "..."
  # Output will be written here:
  export_path = "..."
  with tf.Graph().as_default():
    module = hub.Module(spec)
    init_fn = tf.contrib.framework.assign_from_checkpoint_fn(
        checkpoint_path, module.variable_map)
    with tf.Session() as session:
      init_fn(session)
      module.export(export_path, session=session)
需要注意的要点:

  • build\u model\u body()
    应将输入转换为输出(例如,像素转换为特征向量),以适合集线器模块,但不包括数据读取、丢失和优化器。对于转移学习,最好将这些留给模块的消费者。可能需要进行一些重构

  • 提供
    模块.variable\u map
    对于将通过运行
    build\u model\u body()
    创建的普通变量名转换为通过实例化模块live in scope
    模块/state
    创建的变量名至关重要