gpt4 book ai didi

python-3.x - 如何使用 sklearn.datasets.load_files 加载数据百分比

转载 作者:行者123 更新时间:2023-12-04 16:45:31 24 4
gpt4 key购买 nike

我正在加载 8000 张图像 sklearn.datasets.load_files并通过来自 keras 的 resnet获得瓶颈特征。然而,这个任务在 GPU 上需要几个小时,所以我想知道是否有办法告诉 load_files 加载一定百分比的数据,比如 20%。

我这样做是为了训练我自己的顶层(最后一个密集层)并将其附加到 resnet。

def load_dataset(path):
data = load_files(path)
files = np.array(data['filenames'])
targets = np_utils.to_categorical(np.array(data['target']), 100)
return files, targets

train_files, train_targets = load_dataset('images/train')

最佳答案

这听起来更适合 Keras ImageDataGenerator 类并使用 ImageDataGenerator.flow_from_directory 方法。您不必对其使用数据扩充(这会进一步减慢速度),但您可以选择从目录中提取的批处理大小,而不是全部加载它们。

复制自https://keras.io/preprocessing/image/并用注释略作修改。

train_datagen = ImageDataGenerator(  # <- customize your transformations
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
'data/train',
target_size=(150, 150),
batch_size=32, # <- control how many images are loaded each batch
class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
'data/validation',
target_size=(150, 150),
batch_size=32,
class_mode='binary')

model.fit_generator(
train_generator,
steps_per_epoch=2000, # <- reduce here to lower the overall images used
epochs=50,
validation_data=validation_generator,
validation_steps=800)

编辑

根据您在下面的问题...steps_per_epoch 确定每个时期加载多少批处理。

例如:

  • steps_per_epoch = 50
  • 批量大小 = 32
  • 时代 = 1

将为您提供该时期的 1,600 张图像。这恰好是您 8,000 张图片的 20%。 请注意,如果您遇到批处理大小为 32 的内存问题,您可能需要减少它并增加您的 steps_per_epoch。需要一些修补才能使其正确。

关于python-3.x - 如何使用 sklearn.datasets.load_files 加载数据百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49783945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com