用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。