코딩연습장/Keras(6)
-
[Keras] Generator 만들기
모듈로 제공되는 데이터셋을 사용하는 것은 슬슬 질릴 때가 왔다. 회사나 팀 차원에서 데이터셋을 구축하거나, 또는 Open Datasets을 다운로드하여 사용할 때, 우리는 그 데이터셋을 전처리하여 모델에 input으로 넣어주어야하는데 체계적인 어떠한 모듈이 있으면 좋을 것 같다. 출처: https://towardsdatascience.com/keras-data-generators-and-how-to-use-them-b69129ed779c 그것이 바로 Generator! 오늘은 그 Generator를 만들어 tiny-imagenet 데이터를 가져오고, 전처리하는 코드를 만들 것이다. 추후에 Data Augmentation을 할 때에도 Generator를 사용할 것이니 꼭 준비하도록 하자! 1. Class ..
2021.07.08 -
[데이터 증강] IMGAUG 모듈
이번에는 데이터 증강 모듈을 사용하여, 데이터를 다양한 방향(ex. 크기, 밝기, 노이즈, cutout 등)으로 증강시켜보겠다. 데이터의 종류가 다양하고, 많을 수록 학습이 잘 되는 것은 다들 알고 있을 것이다. 하지만 데이터를 수집하는 일이란 결코 쉽지 않고, 돈과 시간이 소비된다. 이런 문제점을 보완하기 위해서 이미지 데이터의 경우, 영상처리를 통해 다양한 특징을 가지는 이미지들을 만들어내어 데이터를 증강한다. 출처: https://towardsdatascience.com/machinex-image-data-augmentation-using-keras-b459ef87cd22 물론, 개인적으로 원하는 이미지 증강이 있다면 코드를 작성하여 직접 적용하여도 무관하다. 하지만 수많은 증강 기술들을 작성하는 ..
2021.07.08 -
[데이터 준비] Tiny-Imagenet
CIFAR-100은 모델들을 비교하는데 좋은 데이터셋이 아닌 것 같아서 Tiny-imagenet 데이터셋을 사용하려고 한다. 이미지 Shape는 64 x 64이며, 200개의 클래스를 가지고 있다. 이제 데이터셋을 준비해보자! 먼저 Tiny-ImageNet을 API를 통해 다운로드 하여야 한다. wget http://cs231n.stanford.edu/tiny-imagenet-200.zip wget 명령어를 써야하다보니, Ubuntu나 linux기반에서는 아주 손쉽게 다운로드가 진행되는데 윈도우에서는 뭔가 잘 안된다....PowerShell도 이용해보았지만 다운로드 실패... 결국 우분투 서버에서 다운로드 받고, 윈도우로 옮겼다...(서버가 없으신 분들은 가상환경을 이용하시길..) **혹시 윈도우에서 다..
2021.06.29 -
[Classification] ResNet 코딩
이번에는 ResNet Network를 구축할 것이다. https://aistudy9314.tistory.com/29 [분류모델] ResNet 이번에는 기본 CNN에서 조금 구조적으로 진화된 Network를 살펴보려고한다. 지난번 VGGNet같은 경우, 단순 CNN에 3x3필터를 이용하였는데 ResNet은 Residual이라는 조금 새로운 모델 구조를 선보였다. 지금 aistudy9314.tistory.com 이제부터 VGGNet에서 사용한 Train code는 거의 건들지 않을 것이기 때문에, 따로 다루지 않고 모델 부분만 코딩할 것이다. 1. Layer 먼저 layer를 만들어보자. resnet은 보통 18, 34, 50, 101, 152의 size를 갖는다(논문 기준). 논문에서 50이상부터는 bot..
2021.06.29 -
[Classificaiton] VGGNET 모델 코딩
이번에는 실제로 VGGNet을 구현해보고, 훈련까지 해볼 것이다. 코딩 글에서는 코드에 대한 간략한 설명과 결과 정도만 쓸 예정이다. https://aistudy9314.tistory.com/25 [분류모델] VGGNET 제목은 분류모델로 써놓았지만 이 카테고리에 쓸 모델들은 Object Detection, Segmentation 등 등 다른 Task의 기반이 되는 backbone 역할을 해준다고 보면 된다. 이러한 backbone 모델의 성능에 따라 딥러닝 aistudy9314.tistory.com 1. Layer 나는 자주쓰는 layer나 반복되어 쓰이는 과정을 block으로 묶어서 함수로 정의해두는 편이다. 먼저 실제 VGGNet에서 Batch Normalization이 실제로 쓰이지는 않았지만 개..
2021.06.24