deep-learning - 深度学习:在改变 MNIST 图像大小时无法重塑数组
问题描述
我是深度学习的新手。我正在尝试将 mnist 图像从 28 * 28 更改为 224 * 224。
所以我决定使用reshape
方法。导入 MNIST 数据集后,我尝试对其进行重塑:
(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train.reshape(X_train.shape[0], 224, 224, 1).astype('float32')
我正在尝试将所有 MNIST 图像更改为新大小,但出现此错误:
X_train = X_train.reshape(X_train.shape[0], 224, 224, 1).astype('float32')
Traceback (most recent call last):
File "<ipython-input-3-9d12d34bfd75>", line 1, in <module>
X_train = X_train.reshape(X_train.shape[0], 224, 224, 1).astype('float32')
ValueError: cannot reshape array of size 47040000 into shape (60000,224,224,1)
如何将所有 MNIST 图像尺寸更改为新尺寸?
解决方案
正如@datdinhquoc 评论中所说, 重塑保持相同的字节数
例如,如果您有形状 (4,3) 的数组,则基本上有 m * n 即 12 (4*3) 个元素。现在,您可以将其重新整形为乘法得到 12 的任何大小。因此,将数组 cab 重新整形为大小 (2,6) 或 (12,1) 。
在您的情况下,有 60,000 个大小为 (28, 28) 的元素,因此总共有 (60,000 * 28 * 28) 并且尝试使其成为 (60,000 * 224 * 224),这显然是不可能的。
您想要缩放或调整图像大小。表示你想增加它的字节数。在这种情况下,您可以使用 openCV 调整大小功能,如下所示
resized_image = cv2.resize(image, (224, 224))
因此,您需要一张一张地调整所有图像的大小。
推荐阅读
- oop - 大型递归类层次结构的设计模式
- influxdb - Tickscript 窗口删除重复警报
- javascript - 谷歌地图:带有标记的可点击覆盖
- javascript - 有没有更有效的方法来编写这个正则表达式来返回包含某些字母的整个单词?
- c# - profile.User.Identity.IsAuthenticated 返回错误的吃时间
- android - 用户关闭应用程序颤动时如何执行任务
- python - 如何获得小提琴图的上限?我想为每把小提琴标记成对显着差异
- javascript - React-Native/Redux - 如何使用 Fetch/POST 将对象添加到现有 JSON 对象的属性?
- spring - @SqsListener with deletePolicy = SqsMessageDeletionPolicy.ALWAYS 不会从队列中删除消息
- bash - printenv 中包含的环境变量,但无法回显它们