如何将 numpy 数组重塑为 3 维以输入到卷积层?

Posted

技术标签:

【中文标题】如何将 numpy 数组重塑为 3 维以输入到卷积层?【英文标题】:How to reshape a numpy array into 3 dimensional for input to convolutional layer? 【发布时间】:2020-05-31 13:10:26 【问题描述】:

我有一个由 235 个元素组成的 x_train 数组,每个元素都是一个 numpy 数组,由 125 行和 125 列组成。我需要这个数组的形状为(235,125,125),以便输入我的卷积神经网络模型((((类似于我们需要输入 (6000,28,28) 的 MNIST 数字数组的情况),其中我们有 60000 个样本每个都是 28x28 数组)))

有人可以告诉如何将 x_train 数组重塑为 (235,125,125) 吗?

P.S 我最初将 x_train 从 pandas 系列转换为 numpy 数组,下面是快照

【问题讨论】:

【参考方案1】:

你需要使用 Numpy 的reshape 命令:

x_train = x_train.reshape(x_train.shape[0], 125, 125, 1)

看看this part ofKeras 的 MNIST CNN 教程。

【讨论】:

【参考方案2】:

您可以按如下方式使用np.newaxis

x_train [...,np.newaxis]

你的形状会是:

x_train [...,np.newaxis].shape
(235, 125, 125, 1)

【讨论】:

以上是关于如何将 numpy 数组重塑为 3 维以输入到卷积层?的主要内容,如果未能解决你的问题,请参考以下文章

将 2D numpy 数组重塑为 3 个具有 x,y 索引的 1D 数组

Python将3d数组重塑为2d

在python中重塑图像矩阵

重塑 3 列 numpy 数组

Numpy“Fortran”式重塑?

在 NumPy 中将 4D 数组重塑为 2D 数组背后的直觉和想法