Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将PNG或JPEG图像转换为GAN算法接受的格式_Python_Numpy_Machine Learning_Generative Adversarial Network - Fatal编程技术网

Python 将PNG或JPEG图像转换为GAN算法接受的格式

Python 将PNG或JPEG图像转换为GAN算法接受的格式,python,numpy,machine-learning,generative-adversarial-network,Python,Numpy,Machine Learning,Generative Adversarial Network,对于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 don

对于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的形状。我上面的输出呢?(8421116,4)并不意味着842张1116 x 4形状的图片,不是吗?我只加载了一个图像。有人可以帮助我如何转换它,也了解它。谢谢

图像的大小x,y(842x1116)以像素和颜色通道数-4(R,G,B,Alpha)

imread使用PIL或枕头读取图像,它以以下格式返回图像: 高度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)。大多数学习算法需要的不是一张图像,而是多张图像,主要是图像的格式(#图像、高度、宽度)。因此,您需要对其进行重塑:

final_data = small_data.reshape(1,28,28)

应该这样做。但是,适当的RGB(A)到灰度转换和大小调整将是更好的解决方案。查看枕头文档了解详细信息。

我明白了,所以如果我想重塑枕头,我该怎么做?我能把它做成(1784)的形状吗?我对GAN算法和所需的格式一无所知。如果(N,x,y),其中N是图片数量,x,y是尺寸,那么您可以使用scipy.misc.imresize将1.PNG调整为28x28。非常感谢!这真的帮了我很大的忙,你列出的例子和建议也帮了我很大的忙!我会检查更多,并尝试了解它现在。再次感谢你