본문 바로가기

딥러닝54

[딥러닝] Albumentations의 데이터 증강 이해 Albumentations의 데이터 증강 albumentations는 이미지 데이터 증강 라이브러리입니다. 이미지를 좌, 우, 회전, 색변환, 노이즈 등등 넣어서 다양한 데이터를 모델이 학습시킬 수 있게 변환해주는 것입니다. 코드를 보면서 어떻게 사용하는지 확인하겠습니다. import numpy as np import pandas as pd import os import cv2 import matplotlib.pyplot as plt image = cv2.cvtColor(cv2.imread('test.jpg'), cv2.COLOR_BGR2RGB) plt.imshow(image) 여기 원본 강아지사진 한 장이 있습니다. albumentations은 함수마다 확률 값을 줘서 작동을 확률 값으로 하는 것입니다.. 2022. 3. 17.
[딥러닝] Kears의 전처리와 데이터 로딩의 이해 Keras의 전처리와 데이터 로딩 위 사진을 보면 왼쪽은 화질이 좋은 강아지 사진이 있고 오른쪽은 화질이 좀 떨어지는 고양이 사진이 있습니다. 이 두 사진은 np.array로 표현하면, 각각 (2000 x 1640 x 3), (320 x 240 x 3) 입니다. 왼쪽의 이미지는 너무 값이 크니까 오른쪽 고양이와 같은 사진이 50000장 있다고 가정해 봅시다. 이 메타데이터들을 한 번에 np.array로 변환시켜 CPU에 올리면 320 x 240 x 50000 = 3,840,000,000KB 대략 3.8TB입니다. RAM이 3.8TB나 되는 사람은 없겠지요.... 그래서 나온 방법이 메타데이터 즉. jpg 사진들을 Batch Size만큼 CPU가 np.array로 바꾸고 또 GPU가 받을 수 있게 tens.. 2022. 3. 16.
[딥러닝] 전이 학습(Transfer Learning) 전이 학습이란? 일반적으로 CNN 기반의 딥러닝 모델을 제대로 훈련시키려면 많은 수의 데이터가 필요합니다. 근데 그것은 쉽지 않은 일이지요. 방법도 어려울뿐더러 시간의 제약도 많이 있습니다. 이러한 현실적인 문제를 해결한 것이 전이학습입니다. 전이학습이란 이미 충분한 데이터와 여러 연구와 실험으로 만들어진 모델을 학습한 가중치를 가지고와 우리 모델에 맞게 재보정해서 사용하는 것입니다. 이 글에서는 Keras Applications으로 예시를 들건데 사용 가능한 Pretrained 모델은 대부분 ImageNet 데이터 셋으로 사전 훈련된 모델입니다. ImageNet은 1000개의 class들에 대한 이미지를 분류합니다. 최종 Classification layer가 1000개의 unit의 softmax형태로.. 2022. 3. 15.
[딥러닝] GAP(Global Average Pooling) GAP의 필요성 CNN에는 많은 Convolution layer를 쌓기 때문에 많은 필터가 있습니다. 그만큼 차원의 수가 많습니다. 예를들어 (8, 8, 512)의 Feature map들을 Flatten으로 1차원 형태로 바꾸면 8 x 8 x 512 = 32,768 의 파라미터가 생기고 여기서 100개의 뉴런으로 구성된 Layer에 연결하면 32,768,000개의 파라미터가 생깁니다. 파라미터가 너무 많아지면서 학습 시 over fitting이 발생할 수도 있습니다. GAP의 구현 위의 그림과 같이 채널별로 평균 값을 추출합니다. 앞서 말한 Flatten처럼 GAP의 목적은 feature를 1차원 벡터로 만들기 위함입니다. Flatten과는 반대로 파라미터 수를 줄일 수 있습니다. 이는 충분히 채널수가 .. 2022. 3. 14.