ValueError:无法将大小为 708434944 的数组重塑为形状 (224,224,3)

问题描述 投票:0回答:2

我正在尝试将数组

x_train
重塑为 (-1, 224, 224, 3) 以获得
VGG16 model

代码运行时,出现错误

ValueError:无法将大小为 708434944 的数组重塑为形状(224,224,3)

出现

,注意到数据量为

(14119)

但是当我运行

x_valid
和数据量
(660)
时,不会出现这个错误。

这是参考:

https://www.kaggle.com/code/shiv28/ocr-handwriting/notebook

我正在尝试申请VGG16。

我的数据集是这样的,reshape有影响吗?

enter image description here

python numpy keras jupyter
2个回答
3
投票

无法将大小为 708434944 的数组重塑为形状 (224,224,3)

因为

244*244*3
的乘积不等于
708434944

示例:

如果你有一个形状为

(100,)
的一维数组,你可以将其重塑为
(10,10)
(2,50)
(50,2)
(2,10,5)
等,因为它的乘积等于
100


1
投票

根据输入数据的形状,您可能需要对其进行整形、填充或将其堆叠 3 次以形成 3 通道图像,以“欺骗”VGG 模型,使其认为它是 3 通道图像。

如果您只有可以重塑为 244,244 的 2D 图像 - 即它们尺寸的乘积等于 244*244,那么您可以将它们堆叠在一起或将模型更改为适用于单通道图像的模型。

如果您有较小的 2D 图像,您可能需要向图像添加填充/边框。您可能需要参考这篇文章这篇文章

如果您有更大的 2D 图像,您可能需要使用一种调整大小的方法,“丢弃”像素并以智能方式重新计算相邻颜色。试试这个

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.