【发布时间】:2020-10-03 21:44:30
【问题描述】:
我正在尝试从 jpeg 文件加载数据来训练卷积网络。图像很大,但有 2400 万像素,因此无法加载和使用全分辨率。
为了将图像转换为更有用的格式,我尝试加载每个图像,重新缩放它,然后将其附加到列表中。完成后,我可以将列表转换为 numpy 数组并像往常一样输入网络进行训练。
我的问题是我的数据集非常大,重新缩放每个图像大约需要一秒钟,这意味着按照我目前实现的方式调整每个图像的大小是不可行的:
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_dataset_from_directory(),但存储图像数据的目录未正确格式化为包含与此方法所需的相同目标的文件夹。
图像用于二元分类问题。
【问题讨论】:
标签: python dataframe tensorflow machine-learning keras