【问题标题】:3D numpy array in TheanoTheano 中的 3D numpy 数组
【发布时间】:2016-10-30 03:06:25
【问题描述】:

我有一个 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).')

【问题讨论】:

  • 请发布您想要的二维数组(并使用一系列数字,而不仅仅是 0 和 1,以便我们看到您想要的独特解决方案)。
  • 我使用一种热编码。在更高的数字范围内没有意义。

标签: python numpy neural-network theano keras


【解决方案1】:

您可以使用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)

【讨论】:

  • 谢谢,但 Theano 只吃二维数组。
猜你喜欢
  • 1970-01-01
  • 2018-01-15
  • 2021-05-05
  • 1970-01-01
  • 1970-01-01
  • 2019-08-10
  • 1970-01-01
  • 2016-02-10
  • 2012-12-09
相关资源
最近更新 更多