如何将自定义图像数据集加载到 X_train

How to load custom image dataset to X_train

我必须在 mnist 数据集上训练 GAN 模型,我必须用我的另一个图像数据集训练它

(X_train, _), _ = keras.datasets.mnist.load_data()

如何让保存在文件路径下的图片一样? 这是我正在处理的 kaggle notebook https://www.kaggle.com/qbasit/vr-final

让我们对任何类型的图像数据集进行通用化。如果你的图片目录格式是这样的:

Data...
       Images...
                 Apple class folder
                 Orange class folder
                 Mango class folder

如果文件夹名称中包含 class 图片,则文件夹中包含图片。然后您可以使用此代码将图像上传到您的 X 和 classes 到 y 变量。

首先给你的class名字的字典设置一个变量:

classes = {'Apple':0,'Orange':1,'Mango':2}

然后像这样复制路径:

APPLE_DIR='Images/fruits/Apple'
ORANGE_DIR='Images/fruits/Orange'
MANGO_DIR='Images/fruits/Mango'

在此之后使用此代码制作数据:

def assign_label(img,fruit_type):
    return fruit_type

X = []
y = []

def make_data(fruit_type,DIR):
    for img in tqdm(os.listdir(DIR)):
        label=assign_label(img,fruit_type)
        path = os.path.join(DIR,img)
        img = cv2.imread(path,cv2.IMREAD_COLOR)
        img = cv2.resize(img, (IMAGE_WIDTH,IMAGE_HEIGHT))
        
        X.append(np.array(img))
        y.append(str(label))

如果下面的 运行ning 代码在该函数中使用 try-except 时上述函数出错:

def make_data(fruit_type,DIR):
    for img in tqdm(os.listdir(DIR)):
        try:
            label=assign_label(img,fruit_type)
            path = os.path.join(DIR,img)
            img = cv2.imread(path,cv2.IMREAD_COLOR)
            img = cv2.resize(img, (IMAGE_WIDTH,IMAGE_HEIGHT))
        except:
            pass;
        X.append(np.array(img))
        y.append(str(label))

然后到运行函数使用这个代码:

make_data(classes.get('Apple'), APPLE_DIR)
make_data(classes.get('Orange'), ORANGE_DIR)
make_data(classes.get('Mango'), MANGO_DIR)

所有带有classes的图像将存储在X和y中。 您可以通过以下方式查看这些图像的形状:

len(X)
X = np.array(X)
X = X/255
X.shape //returns the shape (numberofImages,WIDTH,HEIGHT,CHANNELS)

使用的库是:

from tqdm import tqdm
from random import shuffle  
from zipfile import ZipFile
from PIL import Image
import cv2
import numpy as np
import pandas as pd

这将解决您对图像的任何自定义数据集的问题。