3D numpy array in Theano



我有一个3D NumpyArray,我想通过Keras神经网络。

由于一次热编码,数组变成了3D数组。

    [
    [[0,1,0,0], [1,0,0,0]],
    [[0,0,0,1], [1,1,0,0]],
    [[0,0,1,0], [0,0,0,1]]
    ]

由于Keras只能计算2D数组,我的问题是,我如何降低维数并将其用于顺序Keras NN?

我现在得到错误:

TypeError: ('Bad input argument to theano function with name "D:\Python27\lib\site-packages\keras\backend\theano_backend.py:503"  at index 0(0-based)', 'Wrong number of dimensions: expected 2, got 3 with shape (32L, 10L, 12L).')

您可以使用numpy.ndarray.flatten使其成为1D数组。例子:

import numpy as np
a = np.array(
    [
        [[0, 1, 0, 0], [1, 0, 0, 0]],
        [[0, 0, 0, 1], [1, 1, 0, 0]],
        [[0, 0, 1, 0], [0, 0, 0, 1]]
    ]
    )
a.flatten()

从这里开始,如果你想按行分割,我建议使用

import numpy as np
a = np.array(
    [
        [[0, 1, 0, 0], [1, 0, 0, 0]],
        [[0, 0, 0, 1], [1, 1, 0, 0]],
        [[0, 0, 1, 0], [0, 0, 0, 1]]
    ]
    )
a = map(np.ndarray.flatten, a)

相关内容

  • 没有找到相关文章

最新更新