python - 导入自己的数据,如 MNIST 或 CIFAR10 load_data()
问题描述
我有一个包含图像的文件夹(大约 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)
推荐阅读
- c# - C# - 单元测试视图模型的公共获取器而不调用类构造函数?
- php - MySQL + PHP + 根据多个输入查询表中的多个列,并非所有输入都需要
- git - 由于无法识别存储库,Git 克隆失败
- html - 使用具有绝对位置子项的 flexbox?
- javascript - ReactJS 我用redux的时候正常吗 我所有的组件都是类组件
- c# - Lambda 表达式不适用于过滤列表中的 obj
- javascript - 为什么我在这行代码中不断收到“意外令牌”错误?
- svg - 如何将 svg 代码转换为 svg 路径图像?
- javascript - 本机视频播放器:从按键中删除事件处理程序
- web - 在 Flutter Web 中使用 Flutter 移动包