set_graph_exec_config
产品支持情况
产品  | 
是否支持  | 
|---|---|
√  | 
|
x  | 
|
x  | 
|
√  | 
|
√  | 
|
x  | 
 针对
功能说明
图级别的配置项接口,用于按计算图设置编译和运行选项。通过该接口调用之后,fetch节点会被打上设置的属性。
函数原型
1 2 3 4 5  | 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]")  |