set_graph_exec_config
功能说明
图级别的配置项接口,用于按计算图设置编译和运行选项。通过该接口调用之后,fetch节点会被打上设置的属性。
函数原型
def set_graph_exec_config(fetch, dynamic_input=False, dynamic_graph_execute_mode="dynamic_execute", dynamic_inputs_shape_range=None, is_train_graph=False, experimental_config=None)
参数说明
参数名 |
输入/输出 |
描述 |
---|---|---|
fetch |
输入 |
图上任意能够执行到的节点,取值包含tensor、operation、list、tuple或者tensor的name。 由于tf.no_op节点会在TensorFlow自身进行图处理时优化掉,因此不能输入该节点 |
dynamic_input |
输入 |
说明:该参数后续版本将废弃,建议不要配置此参数。 当前输入是否为动态输入,取值包括:
|
dynamic_graph_execute_mode |
输入 |
说明:该参数后续版本将废弃,建议不要配置此参数。 对于动态输入场景,需要通过该参数设置执行模式,即dynamic_input为True时该参数生效。取值为: dynamic_execute:动态图编译模式。该模式下获取dynamic_inputs_shape_range中配置的shape范围进行编译。 |
dynamic_inputs_shape_range |
输入 |
说明:该参数后续版本将废弃,建议不要配置此参数。 动态输入的shape范围。例如全图有3个输入,两个为dataset输入,一个为placeholder输入,则配置示例为: dynamic_inputs_shape_range="getnext:[128 ,3~5, 2~128, -1],[64 ,3~5, 2~128, -1];data:[128 ,3~5, 2~128, -1]" 使用注意事项:
|
is_train_graph |
输入 |
标记该图是否为计算图。
|
experimental_config |
输入 |
当前版本暂不推荐使用。 。 |
返回值
fetch
约束说明
如果同时设置了图级别的参数和session级别的参数,则图级别的参数优先级高。
调用示例
一般训练网络中都会执行梯度更新操作,可以将梯度更新操作的返回值作为set_graph_exec_config的fetch入参:
1 2 3 4 | from npu_bridge.estimator.npu import util train_op = util.set_graph_exec_config(train_op, dynamic_input=True, dynamic_inputs_shape_range="data:[1~2];getnext:[1~50,1~50],[1~50,1~50]") |