當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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