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
创建的普通变量名转换为通过实例化模块live in scopebuild\u model\u body()
创建的变量名至关重要模块/state