我有一个包含图像的文件夹(大约4500张),我想加载它们以填充我已经编写的GAN,所以我想像CIFAR10或MNIST load_data()函数一样在X_train中加载图像。
我已经尝试过此功能(文件夹中的所有数据都带有标签0 ..):
def get_data(path):
all_images_as_array=[]
label=[]
for filename in os.listdir(path):
label.append(0)
img=Image.open(path + filename)
np_array = np.asarray(img)
l,b,c = np_array.shape
np_array = np_array.reshape(l*b*c,)
all_images_as_array.append(np_array)
return np.array(all_images_as_array), np.array(label)
但它返回一个形状数组:
(4364, 3072)
编辑:我认为3072是因为图像是32 * 32 * 3 ...
我想要一个与MNIST或CIFAR10返回的形状相同的数组load_data():
(NumberOfImages, 32, 32, 3)
如何更改我的功能?
谢谢
PS:对不起,我是Python的初学者,所以我不太了解这些系统的机制:谢谢您的帮助
最佳答案
此时对象np.array
的形状为l,b,c
np_array = np.asarray(img)
然后,您可以使用np_array = np_array.reshape(l*b*c,)
重塑形状,这是您不想要的。只需删除这两行
同样,由于标签始终为0,因此无需将其附加在循环中,只需将其返回即可。
def get_data(path):
all_images_as_array=[]
for filename in os.listdir(path):
img=Image.open(path + filename)
np_array = np.asarray(img)
all_images_as_array.append(np_array)
all_images = np.array(all_images_as_array)
return all_images, np.zeros_like(all_images)
关于python - 导入自己的数据,例如MNIST或CIFAR10 load_data(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59583965/