我是GAN的新领域的新手,我尝试了一些教程,但是,大多数都使用了Cifar或mnist数据集。所以大多数都是这样的格式化形式(xxxx,28,28)。
最近,我想尝试另一张照片。例如,
from scipy import misc
data = misc.imread("1.PNG") #this can be any images from JPEG or any
print(data.shape)
我的输出:
(842, 1116, 4) # Seriously I dont understand what does this mean. 842 means 842 files? I thought I have only 1 image loaded.
我的预期产量:
由于我是新人,我真的想开始质疑是否应该(1,28,28)或其他什么?所以我可以适应GAN,因为它在教程中使用了784
通常,在mnist的数据集中,我们有(60000,28,28),这意味着60k图片,每个图片28x28。我上面的输出怎么样? (842,1116,4)并不意味着842张形状为1116 x 4的图片不是吗?我只加载了一张图片。有人可以协助我如何转换它并理解它。谢谢
imread使用PIL或Pillow来读取图像,它返回以下格式的图像:高x宽x通道,其中通道通常是3个通道(正常彩色图像的红色,绿色,蓝色[RGB])或有时4个通道(红色,绿色,蓝色,alpha /透明度[RGBA])。
所以你读了一个大小为842x1116
像素的图像,有4个颜色通道。你说你使用形状的训练数据(xxxx,28,28),所以你使用灰度而不是彩色图像。第一步是将彩色图像转换为灰度。 Pillow
(作为PIL的替代品)是一个很好的图像操作库。或者,您可以使用一个频道
gray_data = data[:,:,0]
要将其用作训练数据,您现在可以将其调整为28x28或从中提取大小为28x28的小块。
small_data = gray_data[:28,:28]
这将导致(28,28)。大多数学习算法都期望不是一个而是几个图像,主要是格式(#images,高度,宽度)。所以你需要重塑它:
final_data = small_data.reshape(1,28,28)
应该这样做。但是,正确的RGB(A)到格雷转换和调整大小将是更好的解决方案。查看枕头文档了解详细信息。
图像的大小x,y(842x1116),以像素为单位,颜色通道数为-4(R,G,B,Alpha)