当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python mxnet.symbol.op.Flatten用法及代码示例


用法:

mxnet.symbol.op.Flatten(data=None, name=None, attr=None, out=None, **kwargs)

参数

  • data(Symbol) - 输入数组。
  • name(string, optional.) - 结果符号的名称。

返回

结果符号。

返回类型

Symbol

通过折叠更高维度将输入数组展平为二维数组。 .. 注意::Flatten 已弃用。请改用flatten。对于形状为 (d1, d2, ..., dk) 的输入数组,flatten 操作将输入数组重塑为形状为 (d1, d2*...*dk) 的输出数组。请注意,此函数的行为不同于 numpy.ndarray.flatten,后者的行为类似于 mxnet.ndarray reshape((-1,))。例子:

x = [[
    [1,2,3],
    [4,5,6],
    [7,8,9]
],
[    [1,2,3],
    [4,5,6],
    [7,8,9]
]],
flatten(x) = [[ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.],
   [ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.]]

例子

Flatten 通常在 FullyConnected 之前应用,将卷积层产生的 4D 张量重塑为 2D 矩阵:

>>> data = Variable('data')  # say this is 4D from some conv/pool
>>> flatten = Flatten(data=data, name='flat')  # now this is 2D
>>> SymbolDoc.get_output_shape(flatten, data=(2, 3, 4, 5))
{'flat_output': (2L, 60L)}
>>> test_dims = [(2, 3, 4, 5), (2, 3), (2,)]
>>> op = Flatten(name='flat')
>>> for dims in test_dims:
... x = test_utils.random_arrays(dims)
... y = test_utils.simple_forward(op, flat_data=x)
... y_np = x.reshape((dims[0], np.prod(dims[1:]).astype('int32')))
... print('%s: %s' % (dims, test_utils.almost_equal(y, y_np)))
(2, 3, 4, 5): True
(2, 3): True
(2,): True

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 mxnet.symbol.op.Flatten。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。