gpt4 book ai didi

python - Keras 中的数据增强是如何工作的?

转载 作者:太空宇宙 更新时间:2023-11-03 14:51:42 25 4
gpt4 key购买 nike

我有以下代码使用列表中的数据作为输入来进行数据扩充:

from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img import PIL

def augment(file_images_path, dir_save):

datagen = ImageDataGenerator(rotation_range=40, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode='nearest')

with open(file_images_path) as f:

images_names = f.readlines()
images_names = [x.strip() for x in images_names]
for line in images_names:
img=PIL.Image.open(line)
img=img.resize((28,28))
x = img_to_array(img)
x = x.reshape((1,) + x.shape)
# the .flow() command below generates batches of randomly transformed
#images and saves the results to the `dir_save` directory
i = 0
for batch in datagen.flow(x, batch_size=1, save_to_dir=dir_save, save_prefix='augmented', save_format='tif'):
i += 1
if i > 2:
break # otherwise the generator would loop indefinitely

我是 Keras 数据扩充方面的新手,我想知道 Keras 每次迭代对我的图像执行多少次图像操作。例如,如果我在包含 14 个图像的列表上运行此代码,它将生成 126 个增强图像。如果我在包含 125 张图像的列表上运行它,它将生成 370 张增强图像。我的问题是:为什么?

最佳答案

如果您在 Keras 中使用数据增强,那么每次您生成一些数据时,数据都会被轻微修改。

现在一些数据增强步骤具有有限数量的选项(例如,您可以翻转图像或不翻转图像),因此使用这些步骤可能会使您拥有的图像数量翻倍。

其他人有(实际上)无限多的选择。例如,当您指定 rotation_range=40 时,这意味着每次生成图像时,该图像都会以 -40 到 40 度之间随机选择的角度旋转。

因此,通过您使用的数据增强,您实际上可以生成无限多张不同的图像。然而,这些将高度相关,并且显然不如实际拥有无限多张图像。

关于python - Keras 中的数据增强是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45240349/

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