将 2D 重塑为 4D 阵列

Ils*_*lse 5 numpy ipython conv-neural-network

你好关于重塑数组的问题。

我有一个数组 train_x (2D),其内容是 (103,784)

在这种情况下,103 是示例的数量。

784是我的神经网络的输入。

现在我想从 2D 重塑为 4D

我使用以下命令:

train_x = np.reshape(train_x, (103, 28, 28, 1))
Run Code Online (Sandbox Code Playgroud)

在这种情况下,103 仍然是训练样本的数量,并且在这种情况下,我的输入 784 被分成 28x28 的矩阵,这是否正确?在这种情况下,1 是我的通道,不使用 RGB(否则通道应为 3)。

如果我的假设不正确,请有人建议如何将 2D 重塑为 4D 以存档上述内容?tnx

w-m*_*w-m 2

你的假设是正确的。关于重塑的NumPy 文档指出:

您可以将重塑视为首先对数组进行整理(使用给定的索引顺序),然​​后使用与整理相同的索引顺序将整理后的数组中的元素插入到新数组中。

train_x形状 (103, 784) 将分解为:

[img_0[0], ..., img_0[783], img_1[0], ..., img_1[783], ..., img_102[0], img_102[783]]

然后按照预期,使用问题中的重塑命令将其重塑为 103 个 28x28x1 的图像。

您应该确保平 784 值已按照您用于解开它们的相同顺序进行解开,即行优先或列优先。如果您不确定,快速的完整性检查是在重塑后绘制其中一张图像。