
keras preprocessing github
https://github.com/keras-team/keras-preprocessing
[주요 코드 리뷰]
코드를 한번 보면 막 엄청 어렵게 되어있지는 않다.
그냥 numpy linalg가지고 장난친 정도라서 나중에 사용할때는 참고해서 상속받아 수정해서 쓰면 좋을듯 하다.
train_datagen = ImageDataGenerator(
rescale=1./255,
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')
참고할만한 코드로는 이게 다인거같다.
개, 고양이 classification 보여주면서 data augmentation시 성능이 좋아지는 것을 보여주나 개, 고양이 같은 애들이 ImageDataGenerator가 제공하는 augmentation하고 잘 맞아서 그런 것 같다.
아마 뒤집거나 shear를 주는 것에 영향을 받으면 안되는 데이터 이미지들의 경우 오히려 하면 안되므로 좀 신중하게 써야할 필요가 있어보인다.
rescale은 각 pixel에 곱해지는 스케일 값이다.
rotation_range는 회전 각도 범위에서 랜덤 회전한다.
width, height shift는 너비 높이 방향으로 대상을 이동하는 비율이다.
shear는 엇밀어서 찌그러지는 이미지의 비율이다.
zoom은 확대 축소의 비율이다.
horizontal_flip은 대칭을 할 것인가 아닌가 이다.
fill_mode는 shear같은 augmentation시 pixel loss부분을 어떻게 채울지에 대한 방법이다.
ImageDataGenerator는 원본 데이터에 augmentation한 것을 추가하는게 아니라 기존의 데이터들을 읽어오면서 위의 조건으로 랜덤하게 변형하므로 메모리단에서만 augmentation한게 반영되고 origin data에는 영향이 없다.
my github repo - https://github.com/han811/tensorflow