Witam,
chciałbym zapytać, czy dobrze rozumiem idee data augumentation w uczeniu maszynowym.
Ja rozumiem to tak, że mamy mało danych uczących albo kiepskiej jakości i wtedy stosujemy np. normalizację kontrastu itp. A w momencie gdy brakuje nam danych to możemy sobie je "rozmnożyć" obracając zdjęcie, skalując i z jednego zdjęcia możemy zrobić kilka.
Teraz kwestia której nie rozumiem, w którym momencie sieć wykorzystuje te dodatkowe dane.
augumentation = iaa.Sequential(
[
# apply the following augmenters to most images
iaa.Fliplr(0.5), # horizontally flip 50% of all images
iaa.Flipud(0.2), # vertically flip 20% of all images
# crop images by -5% to 10% of their height/width
sometimes(iaa.CropAndPad(
percent=(-0.05, 0.1),
pad_mode=ia.ALL,
pad_cval=(0, 255)
))
model.train(dataset_train, dataset_val,
learning_rate=LEARNING_RATE,
epochs=6,
layers='all',
augmentation=augmentation)
Czy powinienen jakoś wyliczać ile mi przybyło danych? Bo powiedzmy, że mam 1000 zdjęć. A liczbę kroków w jednej epoce zazwyczaj stosuje sie liczba_zdjec/batch = 100 (niech batch bedzie 10). Bo po augmentacji mam teraz dwa razy więcej zdjęć.