用法:
bind(ctx, args, args_grad=None, grad_req='write', aux_states=None, group2ctx=None, shared_exec=None)
- ctx:(mxnet.context.Context) - 生成的执行程序运行的设备上下文。
- args:(
list of NDArray
or
dict of str to NDArray
) -符号的输入参数。- 如果输入类型是
NDArray
的列表,则顺序应与list_arguments()
的顺序相同。 - 如果输入类型是 str 到
NDArray
的字典,则它将参数名称映射到相应的NDArray
。 - 在任何一种情况下,都必须提供所有参数。
- 如果输入类型是
- args_grad:(NDArray 列表或 str 的 dict 到
NDArray
, 可选的) -指定时,args_grad
提供 NDArrays 以向后保存梯度值的结果。- 如果输入类型是
NDArray
的列表,则顺序应与list_arguments()
的顺序相同。 - 如果输入类型是 str 到
NDArray
的字典,则它将参数名称映射到相应的 NDArray。 - 当类型是 str 到
NDArray
的字典时,只需提供所需参数梯度的字典。只会计算指定的参数梯度。
- 如果输入类型是
- grad_req:(
{'write'
,
'add'
,
'null'}
, or
list of str
or
dict of str to str
,
optional
) -指定我们应该如何将渐变更新为args_grad
。- 'write' 表示每次将梯度写入指定的
args_grad
NDArray
。 - 'add' 表示每次将渐变添加到指定的 NDArray。
- 'null' 表示不采取任何行动,可能不计算梯度。
- 'write' 表示每次将梯度写入指定的
- aux_states:(列表
NDArray
, 或 str 的 dict 到NDArray
, 可选的) -向符号输入辅助状态,仅当list_auxiliary_states()
的输出不为空时才需要。- 如果输入类型是
NDArray
的列表,则顺序应与list_auxiliary_states()
的顺序相同。 - 如果输入类型是 str 到
NDArray
的字典,则它将auxiliary_states
的名称映射到相应的NDArray
, - 在任何一种情况下,都需要提供所有辅助状态。
- 如果输入类型是
- group2ctx:(
Dict of string to mx.Context
) - 字典映射ctx_group
归因于上下文分配。 - shared_exec:(
mx.executor.Executor
) - 执行者共享内存。这适用于运行时重塑、可变长度序列等。返回的执行程序与shared_exec
, 并且不应该与它并行使用。
executor:- 生成的执行器
参数:
返回:
返回类型:
将当前符号绑定到执行器并返回它。
我们首先声明计算,然后绑定到要运行的数据。此函数返回一个执行程序,它提供方法
forward()
方法进行评估和outputs()
方法来获取所有结果。示例:
>>> a = mx.sym.Variable('a') >>> b = mx.sym.Variable('b') >>> c = a + b <Symbol _plus1> >>> ex = c.bind(ctx=mx.cpu(), args={'a' : mx.nd.ones([2,3]), 'b' : mx.nd.ones([2,3])}) >>> ex.forward() [<NDArray 2x3 @cpu(0)>] >>> ex.outputs[0].asnumpy() [[ 2. 2. 2.] [ 2. 2. 2.]]
注意:
辅助状态是符号的特殊状态,不对应于参数,没有梯度,但对特定操作仍然有用。辅助状态的常见示例包括
BatchNorm
中的moving_mean
和moving_variance
状态。大多数运算符没有辅助状态,在这些情况下,可以安全地忽略此参数。可以通过在
args_grad
中使用字典来放弃渐变,只指定他们感兴趣的渐变。
相关用法
- Python mxnet.symbol.Symbol.get_children用法及代码示例
- Python mxnet.symbol.Symbol.list_outputs用法及代码示例
- Python mxnet.symbol.Symbol.infer_type_partial用法及代码示例
- Python mxnet.symbol.Symbol.eval用法及代码示例
- Python mxnet.symbol.Symbol.infer_shape_partial用法及代码示例
- Python mxnet.symbol.Symbol.simple_bind用法及代码示例
- Python mxnet.symbol.Symbol.list_inputs用法及代码示例
- Python mxnet.symbol.Symbol.infer_type用法及代码示例
- Python mxnet.symbol.Symbol.debug_str用法及代码示例
- Python mxnet.symbol.Symbol.infer_shape用法及代码示例
- Python mxnet.symbol.Symbol.list_auxiliary_states用法及代码示例
- Python mxnet.symbol.Symbol.attr_dict用法及代码示例
- Python mxnet.symbol.Symbol.attr用法及代码示例
- Python mxnet.symbol.Symbol.list_attr用法及代码示例
- Python mxnet.symbol.Symbol.get_internals用法及代码示例
- Python mxnet.symbol.Symbol.list_arguments用法及代码示例
- Python mxnet.symbol.SequenceReverse用法及代码示例
- Python mxnet.symbol.SequenceMask用法及代码示例
- Python mxnet.symbol.SequenceLast用法及代码示例
- Python mxnet.symbol.SoftmaxActivation用法及代码示例
注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 mxnet.symbol.Symbol.bind。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。