mxnet随笔-循环

mxnet.ndarray.contrib.foreach(body, data, init_states)

运行循环,在NDArrays在0维度上使用用户定义的计算

这个操作

这个操作符模拟了一个for循环,并且body有一个for循环迭代的计算。body以两个参数作为输入,并输出两个元素的元组,如下所示:

out, states = body(data1, states)

data1是NDArray的列表或NDArray,如果data是一个NDArray,则data1是一个NDArray,否则,data1是一个NDArrays的列表且有和data同样的大小。states是一个NDArrays的列表,有与init_states相同的大小。out是NDArray或NDArray的列表,它被连接为为foreach第一个输出。states来自body的最后执行,是foreach的第二个输出。

当输入数据是NDArray时,这个操作符所做的计算相当于下面的伪代码:

states = init_states outs = [] for i in data.shape[0]:
s = data[i] out, states = body(s, states) outs.append(out)

outs = stack(*outs)

Parameters:
body (a Python function.) – Define computation in an iteration.
data (an NDArray or a list of NDArrays.) – The input data.
init_states (an NDArray or nested lists of NDArrays.) – The initial values of the loopstates.
name (string.) – The name of the operator.
Returns:

outputs (an NDArray or nested lists of NDArrays.) – The output data concatenated from the output of all iterations.
states (an NDArray or nested lists of NDArrays.) – The loop states in the last iteration.

Examples

你可能感兴趣的:(AI)