TracedLayer

    TracedLayer用于将前向动态图模型转换为静态图模型,主要用于将动态图保存后做在线C++预测。除此以外,用户也可使用转换后的静态图模型在Python端做预测,通常比原先的动态图性能更好。

    TracedLayer使用 ExecutorCompiledProgram 运行静态图模型。转换后的静态图模型与原动态图模型共享参数。

    所有的TracedLayer对象均不应通过构造函数创建,而应通过调用静态方法 创建。

    TracedLayer只能用于将data independent的动态图模型转换为静态图模型,即待转换的动态图模型不应随tensor数据或维度的变化而变化。

    static trace ( layer, inputs )

    创建TracedLayer对象的唯一接口,该接口会调用 layer(*inputs) 方法运行动态图模型并将其转换为静态图模型。

    参数:

    • layer (dygraph.Layer) - 待追踪的动态图layer对象。

    返回: 包含2个元素的tuple,其中第一个元素是 的输出结果,第二个元素是转换后得到的TracedLayer对象。

    返回类型: tuple

    代码示例

    set_strategy ( build_strategy=None, exec_strategy=None )

    设置构建和执行静态图模型的相关策略。

    参数:

    • build_strategy (BuildStrategy, 可选) - TracedLayer内部 CompiledProgram 的构建策略。

    代码示例

    save_inference_model ( dirname, feed=None, fetch=None )

    将TracedLayer保存为用于预测部署的模型。保存的预测模型可被C++预测接口加载。

    参数:

    • dirname (str) - 预测模型的保存目录。

    • fetch (list(int), 可选) - 预测模型输出变量的索引。若为None,则TracedLayer的所有输出变量均会作为预测模型的输出。默认值为None。

    返回: 无