딥러닝의 발전과 CNN - 3

김찬울·2021년 9월 13일
0

다양한 알고리즘

alexNet(2012), VGG(2014), GoogleNet(2014), ResNet(2015) 등으로 발전해온 딥러닝의 역사가 있다.

alexNet부터 머신러닝이 아닌 딥러닝으로 직접적으로 불리기 시장했는데 layer의 등장이라고 할 수 있다.

ResNet으로 갈 수록 많은 layer(filter)를 가지고 더욱 더 좋은 결과를 냈다.

이를 비교한 것을 cs231n(스탠포드 univ) 에서 시각화하여 발표했다.

CNN

하나의 주제에 대한 여러 이미지를 몇 만, 몇 십만개를 찾기 힘들다면 이미 기존의 데이터를 가공하면된다. 이를 증강한다 라고 하는데, 이 방법은 기존의 데이터를 뒤집거나, 기울거나, 색을 변환한다는 등의 가공을 통해 데이터를 조금더 강력하게 만든다.

ImageDataGenerator

Generator라는 파이썬에서 yield를 통한 중간 중간 return처럼 값을 받는 것을 활용한 느낌이다.

조금 다르게 느껴질 수 있는데 간단히 말하면

여러 옵션을 바탕으로 데이터를 가공하여 내보낸다.

각도조절, 뒤집기, 섞기가 가능하다.

data_generator = ImageDataGenerator(horizontal_flip = True,
                                    rotation_range = 30,
                                    vertical_flip= True,
                                    zoom_range=(0.7, 0.9)
                                    )

이런 식으로 사용가능

이렇게 만들어진 generator는 flow를 통해 데이터를 적용하고(fit)

iterator형태를 가지기 때문에 next를 통해 하나하나 불러올 수 있다.

우리가 아는 간단한 iterator형은 enumerate가 있기에 다양한 이미지를 다룰때에는
enumerate를 통한 for문을 이용할 수 있다.

profile
코린코린이

0개의 댓글