no image
[Book Review] MLOps 도입 가이드
한빛미디어에서 출간된 “MLOps 도입 가이드”라는 책은 기업이 MLOps를 도입하기 위한 머신러닝 모델 배포 프로세스, 시스템 구축, 확장, 효율화 및 관리에 대한 방법들을 소개한다. 참고로 MLOps는 Mahchine Learning Operations(머신러닝 운영)을 뜻한다. 이러한 내용들은 데이터 사이언티스트, 머신러닝 엔지니어 등 AI 엔지니어링 업무를 다루는 여러 사람들에 의해 작성되었기 때문에 MLOps를 도입하는데 있어서 발생하는 “조직적 이슈”와 “기술적 이슈”를 모두 다룰 수 있다. 책은 크게 3부로 구성되며, MLOps 개념과 필요성 / MLOps 적용 방법 / MLOps 실제 사례로 구성되어있다. 이 책의 1장에서 설명된 MLOps 개념과 필요성 그리고 이를 구축하는데 필요한 역할..
2022.05.26
no image
[NVIDIA TAO Toolkit] TAO Toolkit 개요
NVIDIA TAO Toolkit을 이용하여 사전 훈련된 NVIDIA 모델에 custom dataset을 적용하여 Computer Vision(이하 CV) 모델을 만들거나 Conversational AI(이하 Conv AI) models을 만들 수 있는 툴킷이다. 비전 분야에서는 주로 object detection, image classification, segmentation, keypoint estimation 등의 모델들을 fine-tuning 할 수 있다. 특히 pre-trained 모델에 새로운 클래스를 추가할 수도 있고, 다양한 케이스에 맞게 다시 학습 시킬 수 있으며, TAO Toolkit은 학습과 관련된 hyperparameter들을 수정하여 custom AI model을 생성할 수 있다...
2022.05.03
num_workers 미설정 시 학습 데이터 로드 속도 영향 발생
iteration 20 마다 결과 값(time, loss 등)을 확인하며 모델을 학습하고 있는데, iter=20 당 속도가 2배나 느려진 것을 발견하였다. 단순히 데이터 세트가 더 많이 추가되어 그런줄 알고있었는데, 아무리 생각해도 이상해서 이전에 데이터를 이 정도 양으로 많게끔 학습했던 적이 있었을 때의 로그를 확인해보니 시간 차이가 다소 있었다. 그래서 이상해서 찾아보던중.. 불현듯 며칠전 실험 시 바꿨었던 num_workers 가 생각났다....아... num_workers 디폴트 값인 0으로 두고 학습을 진행시켰었는데, 이것 때문에 데이터 로드 시 속도 저하(이전 보다)가 있었던 것 같다. 그래서 바로 num_workers 값을 GPU * 4 로 설정해주니 이전과 같이 빠르게 학습이 진행되는 것을..
2022.04.25
no image
[Book Review] 머신러닝 실무 프로젝트
한빛미디어에서 출간된 머신러닝 실무 프로젝트(2판) 책은 기존 내용에 MLOps 및 슬롯머신 알고리즘을 활용한 강화학습 등의 내용을 추가하여 2판을 출간했다고 한다. 1장에서는 머신러닝을 어떻게 프로젝트에 적용하는지에 대해 배우며, 머신러닝 프로젝트 진행과정을 다음과 같이 명료하게 나누어 두었다. 1. 비즈니스 문제를 머신러닝 문제로 정의 2. 논문을 중심으로 유사한 문제들을 조사 3. 머신러닝을 사용하지 않는 방법은 없는지 검토 4. 시스템 설계를 고려 5. 특징량, 훈련 데이터와 로그를 설계 6. 실제 데이터를 수집하고 전처리 7. 탐색적 데이터 분석과 알고리즘을 설정 8. 실제 데이터를 수집하고 전처리 9. 시스템 통합 10. 예측 정확도, 비즈니스 지표 모니터링 머신러닝 엔지니어들은 이미 머신러닝..
2022.04.24
no image
[Pose Estimation] waterfall module 기반으로 설계된 자세 추정 방법들 (UniPose, UniPose+, OmniPose, BAPose)
waterfall module 즉 WASP(Waterfall Atrous Spatial Pyramid)는 위 그림과 같은 구성으로 되어있으며 원래 semantic segmentation을 위해 multiscale fields-of-view(FOV)를 유지하면서 cascade architecture에서 progressive filtering을 활용하는 “Waterfall” Atrous Spatial Pooling 기반 방식으로 이루어진 모듈이다. 이와 같은 module로 설계된 자세 추정 방법들은 아래와 같다. 1. UniPose, Unified Human Pose Estimation in Single Images and Videos (CVPR 2020) WASP module (w/ a cascade of..
2022.04.20
no image
[Paper Review] UniPose, Unified Human Pose Estimation in Single Images and Videos
“Waterfall” Atrous Spatial Pooling architecture를 기반으로 인간의 자세를 추정하는 UniPose를 소개합니다. 참고로 Waterfall Atrous Spatial Pooling 방법은 semantic segmentation을 위해 multiscale fields-of-view를 유지하면서 cascade architecture에서 progressive filtering을 활용하는 module 입니다. 본 논문에서는 contextual segmentation 및 joint localization을 통합하여 statistical postprocessing 방법에 의존하지 않고 single stage 에서 인간의 자세를 높은 정확도로 추정한다고 합니다! 이러한 방법은 mul..
2022.04.20
no image
[Object Detection] Anchor-free 기반 Object Detection의 Center Sampling 방법 (FCOS, FoveaBox)
초창기 Object Detection 분야에서는 하나의 grid cell에 객체를 하나만 검출할 수 있었으며, 더 나아가 여러개의 grid에서 객체를 검출하기 위해 Anchor box라는 개념을 사용하여 객체를 탐지하였습니다. 여기서 Anchor box는 딥러닝 신경망이 검출해야할 object shape에 대한 가정입니다. 하지만 Anchor box는 크기, 종횡비, 개수에 굉장히 민감하다는 단점이 있습니다. 이 Anchor box를 어떻게 설계하느냐에 따라 모델 성능에 영향을 미치게 됩니다. 또한 pre-defined anchor는 모델 일반화 성능을 해치게 되고, anchor box 크기와 다른 ground-truth를 검출하기 어렵다는 단점이 있습니다. 따라서 anchor box를 사용하지 않는 a..
2022.04.15
vim 편집 시 ctrl+s 눌렀을 때 터미널 멈추는 현상
vim 으로 원격서버에 있는 코드 편집중이였는데 습관적으로 ctrl+s 를 누르다보니 터미널이 멈추는 현상이 발생하여 검색해보았다. 스크롤 락 건거라고 한다. ctrl+Q 누르면 다시 움직인다. 그리고 편집중에 터미널을 꺼버리면 .swp 확장자 파일이 생겨서 자꾸 다시 편집 할 때 마다 E325: ATTENTION 에러가 뜨니까 아래 블로그를 참고하여 해결하길 바란다. 요약하면 아래와 같다. .swp 파일 확인 -> 다른 프로세스가 작업중인지 확인 -> 사용안하면 파일 저장(wq) -> rm ~~.swp 삭제 E325: ATTENTION 해결 방법 https://clear-sky-sun.tistory.com/23 E325: ATTENTION vi swap 해결 방법 Linux vi을 통하여 작업을 하던 ..
2022.04.13
[Deep Learning] Pre-trained model로 gray image를 학습하는 방법
보통 pre-trained model(ResNet 50, ...)의 경우 RGB 3채널을 가지는 color image 를 기반으로 학습을 진행하기 때문에 모델의 입력 정보는 (height, weight, channel=3) 으로 이루어지게 된다. 따라서 이러한 모델에 임의로 1채널을 가지는 gray image를 입력할 경우 shape error 가 발생하게 된다. 이는 단순히 모델의 첫 레이어의 채널을 변경한다고해서 해결되지 않는다. 정확히 말하면 에러는 해결되지만 학습 진행이 안된다. 따라서 pre-trained model로 gray image를 학습시키는 법은 다음과 같다. 1. 첫번째 conv layer 의 채널을 1로 변경하기 2. pretrained weight load 시 1채널로 변경된 첫번..
2022.04.06
no image
[Paper Review] FCOS, Fully Convolutional One-Stage Object Detection
이번에 리뷰할 논문은 바로 FCOS: Fully Convolutional One-Stage Object Detection 입니다. 이 논문은 2019년에 나왔으며, Anchor box 기반 검출기 만큼의 정확도를 달성하는 Anchor Free 기반 검출기의 baseline이 되는 논문이기 때문에 리뷰하게 되었습니다! (사실 CornerNet이 먼저이긴 하지만, CornerNet은 더 복잡한 post-processing 절차가 필요하다고 하네요!) 기존 객체 검출(Object Detection) 분야에서 대장을 이루었던 YOLO v3를 비롯하여 RetinaNet, SSD, Faster R-CNN 등의 객체 검출기들은 Anchor box를 사용하는데 비해, FCOS는 One-stage Detector이기 때..
2022.03.30
no image
[Paper Review] ResNet strikes back: An improved training procedure in timm
저번에 페이스북에서 ResNet strikes back: An improved training procedure in timm 이라는 논문이 나왔다는 게시글을 보고 논문을 살펴보았습니다. 이 논문은 pytorch-image-models github (a.k.a timm)의 원작자인 Ross Wightman의 논문입니다. Ross-Wightman-github 에 들어가보니 소개글에 아래와 같이 적혀있었습니다. 개인적으로 깊이 감명 받았습니다. 🤩 Always learning, constantly curious. Building ML/AI systems, watching loss curves. 아무튼, 이 논문은 모델을 학습하는데 있어서 기본적이면서도 유용한 테크닉들이 잘 소개되어 있으며, 제안하는 학습방법..
2022.03.30
숫자 42의 의미
sklearn 패키지의 train_test_split 모듈을 사용하다가 random_state 값은 왜 42를 사용할까라는 궁금증이 생겨 구글링을 하던 도중에 알아낸 사실이 있다. (이외에 다른데서도 42라는 숫자를 종종 보았었다.) 여기서 random_state 값은 데이터 분할시 셔플이 이루어지는데 이를 위한 시드값이며, some number 이다. 1로 설정하거나 2로 설정해도 어떤 int 값 숫자를 사용할 때마다 처음 나눌 때 항상 동일한 출력을 얻는다는 것이다. 어떤 기사(https://www.joongang.co.kr/article/21790238)에 의하면 아래와 같다. 영국 작가 더글러스 애덤스의 SF소설 "은하수를 여행하는 히치하이커를 위한 안내서"에 등장하는 한 외계 종족은 삶과 우주,..
2022.03.29