Python 卷积网络训练数据预处理中图像尺寸的调整
我正在尝试从jpeg文件加载数据以训练卷积网络。图像很大,有2400万像素,因此加载和使用全分辨率是不现实的 为了使图像成为更有用的格式,我尝试加载每个图像,重新缩放它,然后将其附加到列表中。完成后,我可以将列表转换为numpy数组,并像往常一样输入网络进行训练 我的问题是,我的数据集非常大,重新缩放每个图像需要大约一秒钟的时间,这意味着按照我目前实施的方式调整每个图像的大小是不可行的:Python 卷积网络训练数据预处理中图像尺寸的调整,python,dataframe,tensorflow,machine-learning,keras,Python,Dataframe,Tensorflow,Machine Learning,Keras,我正在尝试从jpeg文件加载数据以训练卷积网络。图像很大,有2400万像素,因此加载和使用全分辨率是不现实的 为了使图像成为更有用的格式,我尝试加载每个图像,重新缩放它,然后将其附加到列表中。完成后,我可以将列表转换为numpy数组,并像往常一样输入网络进行训练 我的问题是,我的数据集非常大,重新缩放每个图像需要大约一秒钟的时间,这意味着按照我目前实施的方式调整每个图像的大小是不可行的: length_training_DF = 30000 for i in range(length_train
length_training_DF = 30000
for i in range(length_training_DF):
im = plt.imread(TRAIN_IM_DIR + trainDF.iloc[i]['image_name'] + '.jpg')
image = block_reduce(im, block_size=(10, 10, 1), func=np.max)
trainX.append(image)
我还使用了以下方法:
length_training_DF = 30000
from keras.preprocessing import image
for i in range(50):
img = image.load_img(TRAIN_IM_DIR + trainDF.iloc[0]['image_name'] + '.jpg', target_size=(224, 224))
trainX.append(ima)
有没有办法更快地将这些图像加载到训练网络的格式中?我曾经考虑过使用keras数据集,可能是通过使用tf.keras.preprocessing.image\u dataset\u from_directory(),但是存储图像数据的目录没有正确格式化为包含此方法所需的相同目标的文件夹
图像用于二进制分类问题。通常的方法是编写预处理脚本,加载大型图像,重新缩放它们,根据需要应用其他操作,然后根据
ImageDataGenerator
的要求将每个类保存到单独的目录中
这样做至少有三个理由:
- 通常情况下,您将运行数十次培训过程。您不希望每次都进行重新缩放或自动白平衡李>
提供了扩充训练数据集的重要方法ImageDataGenerator
- 这是一台现成的好发电机。您可能不想将整个数据集加载到内存中李>