기초 노트 53

파이썬에서 이미지 로드하는 다양한 방법

파이썬에서는 이미지 입출력(image I/O)를 처리하는 정말 많은 라이브러리와 함수들을 제공하고 있다. 특별히 opencv를 사용하면 이미지를 RGB의 형태가 아닌 BGR의 형태로 읽어 색상값이 뒤직박죽 섞여 이를 적절히 섞어줘야 한다던가 하는 테크닉이 필요한 것은 알았지만,이미지를 로드하는 라이브러리와 함수에 따라 이미지 픽셀값의 분포가 다르다던지(1), EXIF라고 하는 사진의 메타 데이터의 반영여부가 달라진다던지(2) 하는 차이점을 최근에서야 알게 되었다.   1. PIL/Pillow- PIL(Python Imaging Library)의 후속으로 유지보수 되고 있는 라이브러리, 원래의 라이브러리는 Python 1.5-2.7을 지원하며, 2011년 PIL 저장소에 대한 마지막 커밋으로 중단되어 Pi..

앵커박스(Anchor-box)와 바운딩 박스(Bounding-box)의 차이

Object detection 논문에서 'Box regression' 이라는 표현이 등장하곤 하는데, 매번 등장할때마다 대충 넘어갔던 개념! 앵커박스와 바운딩박스의 이해를 바로 잡고자한다.왜인지는 모르겠으나 필자 같은 경우 여기서의 Box를 당연히 (Bounding)Box Regression으로 생각했고, 이 때문에 이해가 뒤죽박죽이 되었다. Bounding-box Regression라고 이해한다면,바운딩 박스의 Regression일까? 바운딩 박스로의 Regression일까?주체인걸까 대상인걸까?이것만 명확히해도 사실 헷갈릴 게 없었다. 필자는 'Box Regression'이라는 표현을 마주했을때 Box가 주체적인 단어라고 생각을 했기에이러한 관점에서의 Box Regression은 사실 (Anchor..

판다스 데이터 프레임 인덱싱 유의점들

판다스 데이터프레임의 인덱싱은 크게 세가지 방법이 있다. 1. ' [ ] ' 연산자2. iloc '위치 기반 선택'3. loc '라벨 기반 선택'  1.  '[ ]' 연산자  @ka : 칼럼지정 연산자, 행 슬라이싱, 불리언 인덱싱데이터프레임에 ' [ ] ' 연산자를 적용, df ['column_name'] 와 같이 사용하는 것은 기본적으로 여느 다른 클래스와 마찬가지로 매직 메서드인 '__getitem__'에 의해 구현되어 있다. - 열 선택 df['column_name'] - 슬라이싱을 통한 행 선택df[2:5] 이때 유의점1은 df[3] 과 같이 단일 정수값으로 행을 선택하려고 들면 에러가 난다는 점이다. 데이터 프레임에서 ' [ ] ' 연산자는 '칼럼 지정 연산자'로 작동하며, 열 이름 자체가 '..

Trasnfer Learning vs Fine-tuning 그 차이가 뭔가요?

딥러닝에서 대규모의 모델을 다룰수록 scratch부터 모델을 학습시키는 경우는 잘 없고,기존의 대규모 데이터셋과 GPU Cluster로부터 사전에 학습된 pre-trained 모델을 활용하여 모델링을 하는 경우가 대부분이다.  그 활용 방법이 바로 Transfer Learning과 Fine-tuning이다.Transfer Learning과 Fine tuning은 서로 연관되어 있지만 사용 방식과 사용 맥락에 약간의 차이가 있다. Transfer Learning(전이학습)전이학습(Transfer Learning)은 한 도메인 또는 다른 task에서 학습된 모델을 취하여 다른 도메인이나 task에 적용하는 방식이다.예를 들어, 이미지넷으로 사전 훈련된 모델(ImageNet 21k분류를 위한 모델)을 새로운 ..

딥러닝 FLOPs의 의미

딥러닝 모델들의 논문을 보다 보면 벤치마크 표에서 제시되는 것이 크게 네가지가 있는데, 학습 방법및 하이퍼파라미터 튜닝과 모델 버전에 따른(1)모델의 이름,그리고 task에 해당하는 성능지표를 통해 측정한 (2)정확도와(3)파라미터의 갯수, (4)FLOPs 가 그것이다.  모델의 정확도와 효율성은 일반적으로 trade-off관계에 있기 때문에, 정확도 뿐만 아니라 파라미터의 갯수와 FLOPs로 모델의 효율성을 같이 나타내려고 한다.이 때 모델의 효율성은 파라미터의 갯수와 FLOPs 두가지로 나타내게 되는데 파라미터의 갯수는 모델의 가중치(weight)와 bias term을 모두 포함한 수를 의미하고, 대게는 모델의 capacity를 의미하며 모델의 학습관점에서는 VRAM과 직접적으로 연관되는 부분이다. ..