【问题标题】:How can I reshape 1D np array into 3D?如何将 1D np 数组重塑为 3D?
【发布时间】:2021-02-25 11:13:55
【问题描述】:

我的 699 个训练特征存储在数组 X 中。

X.shape

(699,)

然而,每一行是 1292 * 13

例如:

X[0].shape

(1292, 13)

如何正确重塑它以输入 CNN?

【问题讨论】:

  • np.stack(X) 可能会起作用。或者它可能会因为子数组的形状不同而引发错误。
  • 是的,非常感谢。我将其添加为答案

标签: python-3.x numpy keras numpy-ndarray


【解决方案1】:

例如,为了将它们放入 keras Conv2D 中,您必须具有特定的 input_shape。

因此,您的样本数为 699,您的形状为 (1292, 13, 1)。 最后一个维度 (1) 是通道数,因此如果您有灰色图像(或其他东西),则输入 1 ,如果您有颜色,则输入 3。

类似这样的:

input_shape = (len(x), X[0][0].shape, X[0][1].shape, 1)

tf.keras.layers.Conv2D(2, 3, activation='relu', input_shape=input_shape[1:])(x)

【讨论】:

    【解决方案2】:

    X = np.stack(X) 完成了@hpaulj 提到的工作

    X.shape
    

    (419, 1292, 13, 1)

    【讨论】:

      猜你喜欢
      • 2017-10-15
      • 2020-04-22
      • 1970-01-01
      • 2020-05-04
      • 2018-03-18
      • 2017-12-03
      • 2016-02-10
      • 2022-11-03
      • 1970-01-01
      相关资源
      最近更新 更多