jjunsss의 등록된 링크

 jjunsss로 등록된 네이버 블로그 포스트 수는 134건입니다.

2023 Recap. [내부링크]

매년 돌아오는 insta stroy로 살펴보는 한 해 돌아보기. 이번에는 좀 많이 늦었다. 그래도 정리하고 갈려고 최대한 짧게 짧게 많은 사진 가져와서 한 해를 돌아보고, 다시 나아가보자. 근데 스토리 올린 양을 보니까 다시 그냥 바쁠까 싶기도.. (글 쓰는데 3시간 넘게걸림 ;;;;) 좋아하는 노래 하나 추천 박으면서 되돌아보는 굉장히 긴 글을 시작합니다. 시작해보자 ! 당시는 부경대 교수님이셨던 나의 이전 지도교수님의 인터뷰이다. 지도 교수님 인터뷰 국립대학교 교수 이번 글은 제가 부경대학교에서 학부생으로 공부할 때의 지도 교수님을 인터뷰 하였습니다... blog.naver.com 대학원 생이 되니까 새삼 얼마나 대단하신 분이였는지 다시 한 번 느끼게 되었다. 그리고 지금은 같은 학교로 오셨음. 언제까지고 연락드려서 최대한 질척거리고 싶다. 내 역대급 존예 키보드. 아직도 쓰고있다. 아직 입학하진 않았을 때라 낭만을 마구마구 즐겼다. 주감중 친구들 어느덧 훌쩍 커버린 아들은 아빠

FERRET: REFER AND GROUND ANYTHING ANYWHERE AT ANY GRANULARITY [내부링크]

Introduction Vision-Language Model(VLM)이 발전함에 따라서 2가지가 중요시 여겨지는 추세라고 합니다. 이는 각각 refering과 grounding을 가르키게 되는데, refering은 특정 객체에 대한 정보를 입력단에서 주고 VLM(=mLLM)이 적절한 설명을 수행하도록 하는 작업을 합니다. 반면, grounding은 특정 이미지에 대한 설명을 주고, 그 설명에 알맞은 객체 혹은 포지션을 이미지 내에서 표시하는 작업을 의미합니다. 이 두 작업은 모두 이미지에 대한 세밀한 이해를 기반으로 하기 때문에 어려운 작업에 속하게 됩니다. 기존 연구들은 주로 referring와 grounding를 개별적으로 학습했으나, 사람들은 한 작업에서 얻은 지식을 다른 작업에 쉽게 일반화하고, 일상 대화와 추론에 referring/grounding 능력을 원활하게 통합할 수 있습니다. 이러한 관찰에서 영감을 받아 저자들은 다음 세 가지 주요 질문을 탐구합니다: Referr

Deformable DETR 추가사항 [내부링크]

Deformable DETR(D-DETR)을 사용할 때 알아낸 것이 있어 공유하면 좋을 것 같아서 글을 작성합니다. D-DETR은 기존의 DETR을 베이스 삼아 생겨난 모델입니다. 여기서 DETR은 COCO를 사용해서 훈련하고 여기서 Background도 훈련하게 되는데 이는 DETR이 Cross Entropy loss와 Sigmoid를 사용해서 특정 클래스를 결정하기 때문입니다.(하나의 object query에서) 저는 D-DETR도 DETR을 베이스로 삼고있기 때문에 BG를 무조건 하나는 할당해서 내가 훈련하려고 하는 클래스가 90 개 일 때( coco 가정), 91개(number of class + 1)를 class embedding output으로 줘야한다고 생각했습니다. 여태까지 그렇게 알고 있다가 우연찮게 다시 확인할 기회가 생겼는데 D-DETR의 class embedding dimension을 할당하는 부분에서 DETR과는 다르게 정직하게 클래스의 개수 90(number

NVIDIA x 모두의 연구소 [내부링크]

안녕하세요 여러분 ! 오래간만에 재밌는 소식을 가져왔습니다. 김준수 on LinkedIn: NVIDIA - Foundation Models Lab 안녕하세요 여러분 ! 링크드인에 홍보하는 건 처음이네요 :) 이번에 NVIDIA x 모두의 연구소(모두연)에서 기술 스터디 랩 여러개를 개설했는데 그 중 Foundation models 랩에 랩장으로 추천받아 운영하게 되었습니다 ! 따라서 이번 주부터 3주간 같이 공부 및 연구할… www.linkedin.com 많은 분들이 볼 수있도록 링크드인도 추천 부탁드리겠습니다:) 바로 NVIDIA x 모두의 연구소(모두연)이 같이 진행하여 랩을 개설하고 제가 여기 랩장으로 추천을 받아서 Foundation Lab을 운영하게 되었다는 소식입니다 ! 여기서 랩이란? 스터디와 비슷한 느낌으로 특정한 목적을 가지고 여러 사람들이 모여서 같이 활동하는 것을 의미합니다. 저는 NVIDIA 앰버서더 자격으로 랩장이 되었고, 오늘부터 사람을 3주간 모을 예정입니

FERRET: REFER AND GROUND ANYTHING ANYWHERE AT ANY GRANULARITY. Presentations. [내부링크]

안녕하세요? 오랜만에 발표자료입니다. 요번 주 너무 바빠서 굉장히 급하게 만들었지만 자료 공유는 해야하니 올립니다 :) 이번에 발표한 논문은 최근 관심을 가지는 multimodal LLM 모델 중 하나로써 apple에 의해 연구되었고 ICLR spotlight으로 선정된 논문입니다. 뛰어난 성능을 가지고 있으며, 다양한 vision 입력을 줄 수 있는 첫 워크로 인정받았습니다. Ferret 2. Vision-Langugae Model이란? Ferret이 속하는 mLLM은 Vision-Language Models (VLM)이라고도 합니다. 이러한 모델이란 무엇인지 그리고 뭘 하려고 만들어진 것인지에 대해서 소개합니다. 3. Referring, grounding이란? 4. single form -> Free-form 으로 진화하는 mLLM 모델 5. Ferret의 다양한 입력을 받는 format 6. model architecture 7. mLLM의 가장 기본이 되어지는 Intructi

CVPR2024 Accepted [내부링크]

경사났네요. 기쁜 순간이라 공유드리고 싶어서 글 올립니다 ㅠㅠ 리뷰탈 당시에 5점 4점 3점 이었는데 리뷰탈 이후 5점 4점 4점으로 최종 accept되었습니다 !!! 작년에 벤쿠버갈때만해도 다음 번에는 무조건 1저자로 올것이라 다짐하고 같이 갔던 형한테 으름장을 뒀는데 역시 말한대로 이루어지나봅니다. 시간이 나면 제 논문도 리뷰한 번 하도록 하겠습니다 :) 이걸로 23년도에는 CVPRW, ICASSP, CVPR까지 결국엔 썼는데 연구실 분위기 엄청 힘들었었는데 잡초마냥 잘 견딘 것 같아서 웃음이납니다.. 같이 고생해준 저자 친구들과 이번에 같이 accept된 연구실 형님도 축하드립니다 ! (처음으로 연구실 내 2편 CVPR accept, 교수님꺼 합치면 3편 유니스트 내에서도 처음일 듯) 참고로 논문제목은 "SDDGR: Stable Diffusion-based Deep Generative Replay for Class Incremental Object Detection" 입니다!!

Efficiently usage strategy of DDP [내부링크]

저는 이전에 DDP에 익숙하지 않은 많은 연구자 분들이 간단하게 데이터를 GPU를 사용해서 처리해야 하는 일( e.g. 4개의 GPU에 모델을 각각 호출하고 각각의 모델에서 inference를 수행함으로써 전체 데이터셋을 빠르게 처리하는 등)을 쉽게 할 수 있도록 간단한 함수와 클래스들을 만들어서 깃허브에 배포하였습니다. 이 글은 저는 이걸 잘쓰고 있는데, 많은 분들도 같이 사용할 수 있으면 더 좋을 것 같고 동시에 Pull request 등으로 더 많은 method들을 사용함으로써 손 쉽게 코드를 늘릴 수 있을 것 같다는 것이 하나의 이유이고, 두 번째로는 해당 DDP 모듈을 사용하다가 알게된 것이 있어 공유하기 위함입니다. 많은 코딩러 분들의 시간은 소중하니까요 :) 우선 깃허브는 아래와 같습니다. 시간되신다면 스타도 부탁드립니다 ㅎㅎ.. DDP 뿐 아니라 제가 연구를 수행하면서, 간단히 테스트해보기 좋은 것들도 모아서 연구실 친구들한테도 공유하고 있습니다. 앞으로도 기대해주세요

My research vol.3 [내부링크]

어느 덧 논문으로 작성한 세번 째 연구입니다. 2월에 IPIU갔을 때 괜찮은 생각이 나서 바로 진행했었고 교수님한테는 submit하면서 알려드렸기때문에 굉장히 조용하게 진행했습니다 ㅋㅋ.. 리뷰탈, 과제, 새로운 연구에 겹쳐서 많은 신경은 못썼는데 그래도 논문으로 작성했으니 뭐 어디 안되더라도 아카이브는 제출해둔 상태이고 어디 되면 또 인사드리도록 하겠습니다 :) 아마도 개선할 시간이 있을 것 같지는 않아서 제 블로그에라도 올려서 혹시나 관심있으신 분들에게 소개하기 위해 여기에도 간단한 설명과 함께 올려두려고 합니다. 저는 최근에 foundation models, multimodal LLM, VLM이라고도 하는 이미지를 해석하는 LLM 모델에 매우 관심이 많은데요! (정말 신기한 것 같습니다.) 그래서 떠오른게 VLM 모델과 class incremental object detection을 결합하는 겁니다 ㅎㅎ 실제로 간단한 아이디어였음에도 불구하고 성능은 괜찮게 나왔구, 아이디어 2

CLIP, DINOv2 Similarity [내부링크]

이번 글은 이번에 Anydoor를 하면서 지속된 의문이 었던 CLIP score, DINO score를 살펴보기 위해서 두 개의 방법을 활용해 SImilarity를 측정해보았고 어떤 방법이 무슨 특징을 나타내는지 확인하기 위해 작성하게 되었습니다. 전체 코드는 여기서 살펴볼 수 있으며 앞으로도 이해되지 않는 것들을 간단하게 살펴볼 수 있는 코드들을 작성해서 여기 모아둘까 싶습니다. 모아두면 나중에 써먹을 때도 편하게 가져와서 사용할 수 있을 것 같기도 하고, 결과가 생각나지 않을 때 코드를 간단히 실행해서 확인해 볼 수 있으니 다양한 이해에도 도움이 되리라 생각됩니다. GitHub - jjunsss/laboratory: various experiments for checking various experiments for checking. Contribute to jjunsss/laboratory development by creating an account on GitHub. git

생일 2023 [내부링크]

하 이번에 논문 너무 겹쳐서 못 썼었는데 갑자기 문득 생각나서 감사한 마음을 담아 이번에도 정리하는 시간을 가져본다. 근데 이번엔 일상 블로그 맹키로 짧게 짧게 적고 가야겠다. 3달 지나서 생각이 잘 안남 ㅋㅋ ( ㅜㅜ 죄송 ) 나태곰 암튼 감사한 마음을 담아 선물을 하나씩 뜯어보자 시간 순서대로.. 앨범 순서대로.. ㅋㅋ 준또조 수진님이 사주신 조개 사주신다고 해서 시골집에서 얼른! 내려간다고 꽁지 떨어질 뻔 했었다. 역시나 맛있게 먹고 취했다. 다음 날 이제는 수진님의 남친이 된 진재가 해장으로 사줬다. 나는 해장으로 음식을 가리지 않아서 그냥 먹고 싶었던 카레를 먹으러 갔는데 나 빼고 둘은 하나도 못 먹고 다 버렸다. 사장님이 우리 개 진상으로 봤을듯 그대로 저녁까지 이어진.. 동훈햄까지 껴서 순대전골집 새로 생겼다고 델꼬갔다. 나는 울산 올라가야해서 술은 못 먹었는데 나 빼고 다들 가볍게 먹었고 밥까지 말아서 야무지게 먹었다. 하루를 통으로 여기저기서 배터지게 얻어먹었다. ㅋ

Osprey: Pixel Understanding with Visual Instruction Tuning [내부링크]

Abstract masked dataset 추가로 제안 ⇒ pixel-wise understanding 위해. design a vision-language model by injecting pixel-level representation into LLM CNN based CLIP for using as a image encoder and mask-aware visual extractor Applications; They use also with SAM for more semantic works. Introduction previous research limitation. Region-level understanding에 국한되어 있는 연구들 언급. Kosmos-2 [37]: 이 연구는 bounding box를 지정된 영역으로 처리하고 객체 수준의 공간적 특징을 활용하는 시각적 지시 조정을 시도했습니다. [ https://github.com/microsoft/unilm/tree/mas

DDP Simple usage [내부링크]

이번에는 제가 작성한 코드를 통해 간단하게 DDP를 사용하는 방법에 대해 소개하려고 합니다. 앞으로 해당 깃허브에 제가 궁금한 것 실험 및 여러 연구에 필요한 도구들을 간편하게 사용할 수 있도록 정리하려고 합니다. Stay tuned ~ ! {"payload":{"allShortcutsEnabled":false,"path":"DDP","repo":{"id":737161016,"defaultBranch":"main","name":"laboratory","ownerLogin":"jjunsss","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-12-30T02:53:28.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/713399... github.com 깃 허브에도 설명을 적어두었는데 우선 핵심은 ddp_utils.py 입니다. 내부 코드는

세븐하우스 [내부링크]

바야흐로 3달 전 9월 초 이야기를 이제서야 풀어본다. 이야기는 아니고 그냥 사진 모음집? 삼촌이 옛날 할머니집을 리모델링해서 펜션으로 다시 지었는데 오픈하기 전에 우리 부모님께 자랑하고 계신것을 보고 당당히 걸어가서 멋진집 제가 먼저 경험해볼 수 있게 해주십쇼 삼촌! 이라고 했다. 그러곤 흔쾌히 얻어낸 허락하에 갔다왔는데 너무 좋았어서 멀지만 홍보차 글까지 적는다 (내심 어렸을 때 매일같이 가던 할머니집이 바뀐 모습도 좋아서) 처음에는 누구랑 같이 갈까하다가 초딩때부터 친구들한테 말했는데 대차게 까였다. 멀다고 -- 그래서 나의 임시 파티 만들기가 다시 시작됐고 부랴부랴 만들어서 군대 동기 + 친구 + 알바 동기라는 괴상한 조합을 이뤄 5명이서 가게되었다 ㅋㅋ 급조 팟 다 전부 나랑만 알고 서로 모름 ㅋㅋ 참고로 부산에서 남원까지는 차타고 약 3시간 정도 걸린다. 굉장히 긴 거리를 운전한 동훈햄 고생했었다 근데 나름 오랜만에 먼 거리를 가서 그런지 MT 느낌 낭낭하이 좋았다. 할아

SAHI + YOLOv8 [내부링크]

오랜만에 detection 부분에서 성능을 극대화할 수 있는 알고리즘을 찾게 되어서 가져오게 되었습니다. 비교적 간단하지만 성능 향상은 무서운 알고리즘입니다. 저는 이번 학교 프로젝트에서 YOLOv8을 사용하는데 그 이유가 이 녀석을 쉽게 사용할 수 있도록 YOLO에서 지원해주기 때문일 정도로 성능이 놀랍습니다. 많은 사람들이 모르는 것 같아서 간단하게 논문 가져와서 짧은 설명을 첨언하겠습니다. 결과 우선 놀라운 결과부터 보면 이런식으로 고해상도의 이미지 내에 무수히 많은 객체가 있을 때, 이를 검출하는 능력을 극대화합니다. 물론 단점도 있긴한데, 제 생각에는 단점을 무마할 만큼 적용할 만한 곳이 확실하기도하고 퍼포먼스 향상도 눈에 띄어서 사용할만한 것 같습니다. 알고리즘 깃허브와 논문 링크 : GitHub - obss/sahi: Framework agnostic sliced/tiled inference + interactive ui + error analysis plots Fram

BLIP+GLIGEN ppt [내부링크]

9월에 발표했던 자료긴한데 까먹었어서 업로드합니다. 나름 CVPR 준비하면서 두 논문을 많이 참조했기도하고 정말 쓰임새 많은 좋은 논문들입니다. 한 번에 두 개의 논문을 발표했었습니다. GLIGEN 2. LDM 어김없이 나오는 LDM. 베이스 논문이라 어쩔수 없다.. Figure는 medium이라고 요즘 애용하는 곳의 그림천재 분들 것을 가져왔습니다. 3. GLIGEN 이란? grounding 이라는 정보가 무엇인지에 대해 설명하였습니다. Noise 외에 추가적인 입력을 의미합니다. 4. Grounding input 메인 페이퍼에서 주로 다루는 것은 bbox와 class에 대한 정보이긴한데 사실 GLIGEN은 정말 다양한 입력을 사용할 수 있습니다. canny, HED 등 다양하게 반영할 수 있는 인풋을 학습해서 올려두기도 하였습니다. 5. 방법론. Gated self-attention 6. grounding input duration GLIGEN은 생성 과정에 미치는 추가 인풋의

Re-labeling ImageNet: from Single to Multi-Labels, from Global to Localized Labels [내부링크]

저자 : Sangdoo Yun, Seong Joon Oh, Byeongho Heo, Dongyoon Han, Junsuk Choe, Sanghyuk Chun 학회 : CVPR 2021 Ref : https://arxiv.org/abs/2101.05022 이번에는 제공된 데이터셋의 성능을 극한으로 끌어올리는 방법을 제안한 Re-labeling 논문을 살펴봅니다. Classification분야에서 가장 흔하게 알려진 데이터셋인 Imagenet을 다시 한 번 더 detail하게 annotation을 추가함으로써 SOTA detector들의 성능을 한 층 더 올렸다고 합니다. Summary 기존에 제시되어있던 ImageNet을 ReRabel하여 Multi-labels로 사용. RandomCrop시에 잘려지는 부분들에 대해 다시 Rabel 진행(신뢰도 비율을 따져서). Multi-labeled 된 이미지 annotation을 훈련할 수 있도록 LabelPooling 훈련 방법을 제안(기존의

My first accepted paper [내부링크]

후 이번에 9월에 제출했었던 ICASSP 2024 학회에 논문이 어셉되었다 !! 물론 Non-archival로 써서 제출했던 경험은 있지만 정식 학회에는 이번에 처음이다. 처음이니까 기록해야지. 요즘 학회 특인지는 모르겠는데 공식 사이트보다 항상 트위터가 업데이트가 빠르다. 나도 공개된지 몰랐는데 같이 제출했던 동생이 알려줘서 미리 알게되었다 ㅋㅋ 암튼 억셉되니까 Congratulations가 뜨는데 여기서 폭죽이 터진다 ㅋㅋ (귀엽농) 물론 이건 우리 연구실 사람들이 받는 걸 보면서 알고 있긴 했는데 실제로 받으니까 재밌는 요소긴하다. CVPR이랑 겹쳐서 굉장히 버겁게 만들었는데 CVPR보다 먼저 결과가 나와서 기분은 좋다. 내년 4월에 서울 코엑스에서 5일 가량 학회가 열리는데 그 때 발표하게 될 것 같다. 올해 초 석사 1년차에는 논문 여러 곳에 써보는 것으로 만족하려고 했었는데 일석이조를 보게 되었다 하하 암튼 accept 받고 바로 arXiv에 올리려고 했는데 이게 진짜 열

AnyDoor: Zero-shot Object-level Image Customization [내부링크]

저자 : Xi Chen1 Lianghua Huang2 Yu Liu2 Yujun Shen3 Deli Zhao2 Hengshuang Zhao1 학회 : arXiv 깃 : https://damo-vilab.github.io/AnyDoor-Page/ AnyDoor Abstract This work presents AnyDoor , a diffusion-based image generator with the power to teleport target objects to new scenes at user-specified locations in a harmonious way. Instead of tuning parameters for each object, our model is trained only once and effortlessly generalizes to di... damo-vilab.github.io 아직 아카이브이지만 분명 어딘가에 제출했을 논문입니다. 지금 핫하기도 하구요.

AnyDoor: Zero-shot Object-levelImage Customization; presentation ver. [내부링크]

따끈따근한 신작입니다. PPT reference에 연구실 GPU에 돌려둔 데모 링크도 같이 첨부해 두었습니다. Anydoor. 2. What is the Inpainting? 인페인팅 작업이란 무엇을 하는 것인지를 이해하기 위히 Inpainting-anything 작업에서 가져왔습니다. 3. Anydoor applications 저자들이 소개하는 Anydoor의 다양한 적용법입니다. 단일 모델만 사용해서도 강력한 성능을 보여주는데 다른 모델과 같이 사용할 때 더욱 좋은 결과를 보여준다고 합니다. 4. Anydoor methods 저자들이 제안한 방법들을 크게 4가지로 구분할 수 있습니다. 5. ID-extractor Target object를 망가짐 없이 feature를 추출해서 원하는 scene에 적절하게 배치하도록 하는 작업을 말합니다. 해당 저자들의 work는 특정 객체를 다른 scene에 가져뒀을 때, 특징들을 잃어버리지 않고 최대한 유지한 체로 이미를 옮기는 것이 goal이

LayoutDM: Transformer-based Diffusion Model for Layout Generation [내부링크]

저자 : Shang Chai, Liansheng Zhuang*, Fengying Yan 학회 : CVPR 2023 이번에는 앞서서 발표했던 LayoutDM과 동일한 별칭을 가졌지만 실제로 사용한 방법은 완전 다른 논문입니다. 어떻게 했는지 구조적인 입지만 살펴보기 위해서 간단하게 읽어보았으며 정리도 간단할 예정입니다. 실제 코드를 제공하고 있지는 않습니다. Summaray 일반적으로 사용하는 U-net이 아닌 Transformer에 사용되는 모듈을 가져와서 사용 image가 아닌 layout을 처리하기 위한 embedding을 정리 layout feature( category or somethings ) 을 넣어서 layout (x, y, w, h) generation을 수행 layout 요소 뿐만아니라 diffusion의 중요한 feature인 timestep도 embedding화 하여 특정 time의 diffusion을 바로 바로 수행할 수 있도록 하였음(DDPM) Methods

GLIGEN: Open-Set Grounded Text-to-Image Generation [내부링크]

저자 : Yuheng Li, Haotian Liu, Qingyang Wu, Fangzhou Mu, Jianwei Yang, Jianfeng Gao, Chunyuan Li, Yong Jae Lee 학회 : CVPR 2023 논문 : https://arxiv.org/pdf/2301.07093.pdf 1. Introduction 기존의 텍스트-이미지 생성 모델은 텍스트만을 입력으로 사용하므로, 이미지의 특정 부분을 정확하게 제어하기 어렵습니다. 따라서 저자들은 바운딩 박스와 같은 그라운딩 정보를 추가로 사용하여 이미지 생성을 더욱 정확하게 제어할 수 있는 모델을 제안합니다. 기존에 훈련된 Stable Diffusion 모델의 가중치를 고정(freeze)하고 새로운 그라운딩 정보를 통합하는 새로운 계층을 추가함으로써 해당 모듈만 훈련하게 되는데, 이를 통해 새로운 공간 구성과 개념에도 잘 일반화되는 이미지를 생성할 수 있도록 유도합니다. 실제로 훈련은 추가된 모듈들만 따로 훈련됩니다. 제안

BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and LargeLanguageModels [내부링크]

학회: ICML 저자: Junnan Li Dongxu Li Silvio Savarese Steven Hoi 논문: https://arxiv.org/pdf/2301.12597.pdf Summary CLIP과 반대로 이미지를 이해하는 text를 만들어낼 수 있는 방법 기존에 존재하는 pretrained image encoder를 활용해서 이미지 피쳐를 추출하고 고정된 LLMs을 통해서 원하는 결과를 출력하는 방법. 다만 두 개의 feature embedding이 너무 달라서 이를 잘 fitting 해 주는 모델을 추가하였음. Q-Former 라는 모델을 구성하여 image encoder와 LLMs간의 차이를 줄여주도록 수행하였으며 정상적으로 동작하기 위해서 representation training, generating trainig 이라는 두 가지 사전 훈련 과정을 진행 잘 생성하지만 LLMs의 영향을 크게 받기에 간혹 이상한 말을 생성할 수 있으며, 이는 다른 모델로 변경함으로써 해

Blog contents [내부링크]

Paper Review BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and LargeLanguageModels GLIGEN: Open-Set Grounded Text-to-Image Generation LayoutDM: Transformer-based Diffusion Model for Layout Generation DDGR: Continual Learning with Deep Diffusion-based Generative Replay LayoutDiffusion: Controllable Diffusion Model for Layout-to-image Generation LayoutDiffuse: Adapting Foundational Diffusion Models for Layout-to-Image Generation Continual Detection Transformer for In

OW-DETR: Open-world Detection Transformer [내부링크]

글을 올리기 힘든 요즘이다. 적용 및 발표를 위해 읽었던 CVPR2022 논문 파워포인트 입니다. 1. 2. Open world 란? 3. 기존 연구들의 한계점 추가적인 데이터가 필요하였으며, 그럼에도 불구하고 처음 보는 foreground(object)에 대해서는 잘 예측하지 못하였음. 4. OW-DETR 요약 Resnet의 feature를 사용해서 pseudo labeling 작업을 수행 DDETR 의 query 를 활용해서 bbox를 resnet feture에서 추출 objectness score를 resnet feature를 통해서 계산 -> YOLO6000과 같은 방법에서도 사용한 객체 여부 검출 5. Overall architecture 6. Attention driven pseudo-labeling resent intermediate features 추출 후 average pooling DDETR object queries에서 예측되는 bbox를 사용해서 attentio

LayerNorm in Transformer [내부링크]

제목 : On the Expressivity Role of LayerNorm in Transformers’ Attention 저자 : Shaked Brody , Uri Alon, Eran Yahav On the Expressivity Role of LayerNorm in Transformers' Attention Layer Normalization (LayerNorm) is an inherent component in all Transformer-based models. In this paper, we show that LayerNorm is crucial to the expressivity of the multi-head attention layer that follows it. This is in contrast to the common belief that LayerNorm's only role is to normalize the ac... arxiv.org 논문 쓰는 와중 글

Odyssey [내부링크]

Odyssey란 무엇인가를 찾아 떠나는 긴 여행, 여정을 의미한다고 한다. 이번에 나의 첫 번 째 긴 여정을 끝내가는 김에 이 단어가 생각나서 써봤다 ㅋ 다만, 이번 글이 현재 해야할 일이 쌓인 관계로 짧을 예정이다 나는 올해 초 글에서 내 대학원 1학년의 목표가 논문 두 편이라고 했었는데 (제출만) 어제로 제출하는 건 달성했다. (물론 추가 자료를 제출해야해서 아직 끝나진 않음. 27일까지..) 한 달 2월 초 ~ 3월 14일까지 미친듯이 현생을 살았던 일을 기록해보려 한다. 거의 한 달만에 글을 쓰는 것 같은... blog.naver.com 첫 번째 목표가 입학해서 논문 한 편 쓰는거였고 그건 실제로 올해 초 3월에 위 글에 적혀있듯이 작성했다. 베트남도 포기하고, 2, 3월도 포기하고 수업도 포기했다. ㅠㅠ 암튼 열심히 쓰긴 써서 CVPR Workshop에 제출하였고 아래와 같이 벤쿠버에서 우리 분야의 최고 학회를 경험해 볼 수 있었다. CVPR 2023 in vancouver

Classifier-Free Diffusion Guidance(영상 O) [내부링크]

이번 논문 발표 미팅에서 다뤘던 것은 Diffusion을 특정한 라벨(클래스)로 유도할 때 Classifier를 사용하지 않고 동작하는 방법을 제안하는 논문입니다. 저도 급하게 보느라 최대한 노력했지만 틀린 부분이 있을 수 있습니다 ㅠㅠ(혹시 있다면 알려주세요~) 해당 논문은 2021 NeurlPS Workshop에서 제안되었습니다. PPT가 있으니 PPT를 붙이며 부족하다고 생각되는 부분에 설명을 가미하도록 하겠습니다. 2. 3. 시작은 DDPM으로 진행합니다. CFG를 이해하기 위해 기존 Diffusion의 흐름을 알고 있어야해서 만들었습니다. Diffusion은 이미지를 노이즈화 했다가 노이즈를 다시 역과정을 통해 특정 데이터를 생성하도록 하는 생성 모델입니다. 그리고 이러한 Diffusion 과정을 매우 단축하여 t 스텝의 노이즈가 끼어있는 이미지를 유도하는 이론을 제안하는 방법이 여기서 설명하는 DDPM 이라고 볼 수 있습니다. DDPM을 통해 무수히 많은 t과정을 진행하지

한국수력원자력(한수원) [내부링크]

이번엔 두 달 가량만에 다시 인터뷰글로 찾아오게 되었네요 !! 반가운 소식입니다.. 여기저기 취업소식 들리면 뻔뻔함을 얼굴에 깔고 "인터뷰 좀" 해달라고 하는 것도 이제 익숙해졌습니다. 물론 설득할 때 "우리 후배들 잘 되라고 하는거 아니가~! 라는 말도 첨언해서 거부하지 못하게 만들고 있습니다. ㅋㅋ 아무튼 이번 인터뷰이는 한수원에 취뽀하였습니다. 열심히 노력하더니 좋은 회사 들어가는 걸 보니 제가 다 뿌듯하네요 하하 (난 언제쯤..) 한수원 합격 발표가 얼마 전에 나왔기 때문에, 가능한 빨리 인터뷰를 진행하여 따뜻따뜻하게 답변을 가져왔습니다 !! 원하는 답변이 없다면 부족한 인터뷰어를 욕해주세요 흑 (언제든 후배들을 위해 인터뷰 흔쾌히 해주실 분이 있다면 환영입니다~~) 1. 자기소개, 취업 당시 스펙, 해당 직장을 원하게 된 이유 한국수력원자력 ICT-통신직 합 자격증: 한국사능력검정1급, 컴퓨터활용능력1급, 정보처리기사, 정보통신기사 토익: 820 직장 선택 이유: 지

LayoutDiffusion: Controllable Diffusion Model for Layout-to-image Generation [내부링크]

이전에 소개했던 LayoutDiffuse와는 달리 CVPR2023에 소개된 논문입니다. Summary 일반적인 Diffusion 모델을 Layout을 더 잘 반영하도록 변경한 모델 코드 상에서는 LatentDiffusion으로 DM을 변경하는 코드도 올려두었지만 논문 자체로는 image feature를 다루고 있는 basic한 DM을 사용합니다. Layout을 잘 반영할 수 있도록 Cross Attention(CA)을 적극 활용하였으며 이를 효율적으로 하기 위해서 image를 patch 단위로 나눠 관리하면서 layout을 conditioning 하기 위해 동일한 형태로 변경하는 format도 제시하였습니다.(사실 이 부분은 원래 그렇게 하는지 모르겠습니다. 이 부분이 처음이라) 저자들이 제시하는 CA 를 통해서 객체들이 서로의 관계를 잘 파악하게 만들었으며 뿐만아니라 이미지 전체에 대한 background도 이해할 수 있도록 whole image feature도 layout처럼 넣

DDGR: Continual Learning with Deep Diffusion-based Generative Replay [내부링크]

저자 : Rui Gao, Weiwei Liu 학회 : ICML 2023 Summary 기존에 GAN을 이용해서 생성하던 이미지들은 퀄리티가 좋지 못해서 CL 단계에서 replay로 사용하는 경우에 자꾸만 성능을 떨어트리는 계기가 되었음. 하지만 고 퀄리티의 이미지를 생성하면서 다양성이 보장되는 Diffusion이라는 새로운 생성 모델이 등장하게 됨으로써 생성되는 이미지들을 Replay 하는 것에 대해서 믿음을 가질 수 있게 되었음을 이야기하면서 저자들은 이 방법을 replay를 위한 데이터를 따로 수집하지 않고 Diffusion Model(DM)을 통해 이미지를 생성하면서 Continual Incremental learning의 단계에서 사용하였음. 크게 많은 것을 제안하지는 않았고 DM 을 적절하게 CIL의 흐름에 적용하는 것을 컨트리뷰션으로 여겼음. 따라서 저도 DM에 대해서는 어떻게 사용하였는지에 대해 설명하고 CL 관점에서 소개합니다. 물론 DM에 대부분인 논문인 만큼 핵심적

fortify your life [내부링크]

애들 다 자는김에 논문쓸까하다가 블로그 글이나 쓸까라는 생각이 들어 쓰게 됐다 뭐 딱히 쓸 글은 흔하디 흔한 일상 글인데 그 전에 내가 정말 감명깊게 봤었던 한 인터뷰를 소개하며 글을 시작한다. 아데산야라고 하는 UFC 선수인데 LIVE로 보고 너무 멋있어서 따로 저장해두고 있는 영상이다. 원본은 없어서 다른 사람들이 번역해둔 걸 올린다. 아니 진짜 언제봐도 개멋있다; 뭐 남들이 뭐라하든 자신의 벽이라고 느껴졌던 상대를 처참하게 바른뒤에 하는 저 말은 정말 인상깊게 남았다. 그 때 라이브로 봤는데 진짜 소름돋았었다. 자신의 천적으로 여겨지던 상대를 이긴 후 하는 인터뷰인데 아데산야는 자신의 승리를 위한 이야기가 아닌 사람들에 해주고픈 이야기를 인터뷰에서 한다. "you never feel this level of Happiness if you don't go for somthing in your own life" 나도 아직 아데산야의 행복감과 같은 성취감은 못 느껴봤기에 저 발언은

LayoutDM: Discrete Diffusion Modelfor Controllable Layout Generation [내부링크]

저자 : Naoto Inoue, Kotaro Kikuchi, Edgar Simo-Serra, Mayu Otani, Kota Yamaguchi 학회 : CVPR 2023 layout generationg을 diffusion을 통해서 수행하는 방법입니다. 흔히 알고있는 image를 diffusion화 하는 것과는 다르게 discrete한 데이터인 layout을 생성하고 노이즈화해야하기 때문에 이것에 맞는 discrete diffusion model을 사용해서 진행하는 것이 특징입니다. 그 외엔 일반적인 diffusion process와 동일하고, 훈련된 모델을 다양하게 사용하도록 하는 guidance방법도 제안합니다. 2. layout 이란? 3. layout generation 이란? [c, x, y, h, w]로 구성되는 데이터를 입력으로 사용하고 만들어내는 작업. 또한 생성되는 레이아웃을 여러 조건에 맞춰서 구성하는 방법을 활용하고 있음 4. layout DM: Introducti

CVPR 2023 in vancouver (5) [내부링크]

어느 덧 적는 마지막 편 좋아하는 글이 있다. 어떠한 영화에서 주인공 둘이 여행을 가는데 남주가 책자를 보며 여행하려고하는 여주에게 책자를 덮으며 A Tourist wants to escape life, a traveler wants to experience it 라고 한다. 그러면서 우리는 traveler이니 즐기자고 한다. 이렇게 영화를 떠올리며 나는 traveler 처럼 살겠다고 다짐했고 그에 맞게 잘 경험한 것 같아 좋은 밴쿠버 학회이다. 암튼 마지막 날 사진을 올리는 현재시간 밴쿠버 시간 새벽 4시 37분 ㄷㄷ.. 옆에 형 과제한다고 안자길래 덩달아 안자는 중 아침에 일어나서 학회장 아침을 안먹는건 습관이 되었다. 그래서 포트로 물 끊여서 라면 + 몬스터 조합 조져버리기 커피 몬스터는 극악 난이도의 맛을 자랑한다. 다시는 안 먹음 마지막 날이라고 날씨도 좋다 거 참 ㅎㅎ;; 그리고 학회 마지막 날 혼자 놀러간 학회장에서 구경한 논문들은 아래와 같다. 물론 다 읽지는 못하지만

연구실 MT 제주도 [내부링크]

우리 연구실은 이번에 전체적으로 제주도에 학회 참석이라는 핑계로 오게되었다. 다 같이 다니느라 정신없어서 사진은 많이 못 찍었는데 그나마 찍었던 몇 장으로 정리하는 일상글이다. 분명히 여기까지는 맑고 밝은 하늘,, 연구실 동생이랑 따로오는 동생을 기다리면서 ㅋ 따로 오는 동생이 연착이 3번 정도 되면서 이날은 학회도 못가게 되었다. 그러고 받은 엔비디아 네트워킹 초청 메일.. 나 대신 갈 사람? ㅠㅠ 티셔츠 아까워 60만원 짜리 7인 방 진짜 겁나게 컸고 수영장있고 바베큐장 있고 에이컨 빵빵하고 넓고 수영장있고 ㄷㄷ 그리고 먹은 저녁식사 16명이 흑돼지 먹는데 80만원 가량 나옴 UVLL은 통이 크다. 그리고 당일날 술을 뒤져라 먹어서 (한라산 둘이서 7병인가..) 먼저 일어난 애들끼리 몰래 보말죽 흡입 제주도는 좋은게 가게들이 엄청 문을 빨리 연다. 새벽 5시에 잔 사람 둘이서 8시에 밥먹으러 옴 그리고 몰래 카페도 갔음 ㅋ 소니아였나? 그리고 얼마 안되서 학회를 갔는데 학회에서

Dataset, DataLoader, Sampler [내부링크]

논문 작성을 위해 코드를 적고있는 중에 생각지도 못한 것을 발견해서 작성합니다. Sampler와 DataLoader등을 자유롭게 사용하셨던 분들은 알고 있었을지도 모르겠습니다. 문제점 저는 CustomDataset을 만들어서 제가 원하는 형태로 데이터들이 사용될 수 있도록 하고 있었습니다. 그리고 deque 알고리즘을 사용하여 한 번 출력된 인덱스는 다시 사용되지 않으며 deque에 들어있는 모든 데이터들이 사용되었을 경우에는 False를 의미하게 되는 동작을 원했습니다. 우선 예시코드를 보도록 하겠습니다. class NewDatasetSet(torch.utils.data.Dataset): def __init__(self, args, CCB_augmentation, datasets, OldDataset, OldDataset_weights, fisher_weight, AugReplay=False, Mosaic=False): self.args = args self.Datasets = d

Continual Detection Transformer for Incremental Object Detection [내부링크]

Summary DETR 모델에서 다른 테스크를 학습할 때 Distillation을 적용하기 위해 Label-level에서 적용한 방법 실제로 우리가 아는 KD와 같은 방법이 CL 에서는 Task 마다 다른 클래스에 해당하는 인스턴스가 학습되기 때문에 다른 분포를 학습하게 되어 별다른 효과가 없기 때문에 이전에 학습된 모델을 가지고 수도 레이블을 생성하고 이를 new task를 학습할 때 같이 사용함으로써 모델의 previous forgetting을 방지하는 방법 기존에 제시된 ER 방법의 샘플링을 모분포(previous trained)를 따르게 구성함으로써 구성된 버퍼가 축소된 old task를 의미할 수 있게 수집하는 방법 수집된 버퍼 데이터를 Distribution-preserving calibration 이라고 제안하는 방법을 통해 학습하는데 이는 두 개의 스텝을 나눠 학습하는 것을 의미함. 첫 스텝에서는 이전에 수집된 버퍼+New task 에 해당하는 데이터를 학습하고 두 번

LayoutDiffuse: Adapting Foundational Diffusion Models for Layout-to-Image Generation [내부링크]

해당 논문은 Layout-to-image task에서 보다 리얼하고 다양하면서 align이 잘 맞는 이미지를 생성하기 위해 Diffusion을 사용한 논문으로써 간단하게 정리합니다. CVPR 얼마 안남아서 점점 간략하게 정리하게 될 수도 있습니다. ㅎㅎ;; Summary layout-to-image + Diffusion layout attention을 통해 인스턴스가 존재하는 위치에서만 attention을 강력하게 주입하고 반대로 존재하지 않는 부분(background)에 대해서도 고려하여 DM이 두 가지를 잘 고려한 global feature를 받아서 훈련할 수 있게하였음 arXiv 논문 Introduction 기존의 제시되어있던 LDM, DM 방법들은 다양한 테스크에 사용됩니다. 이는 Layout 내에 이미지를 생성하는 Layout-to-image 도 마찬가지였는데 해당 논문에서는 이러한 LDM, DM 들을 활용해서 생성하는 이미지들이 성능이 좋으면서도 layout이 복잡해지는

Daily Life [내부링크]

오랜만에 서울와서 친구집에서 알딸딸하겠다 적는 최근 일상 넘 피곤하지만 간단하게 적고 일찍 일어날 예정 바로 기록 시작해본다 오랜만에 steam에 Wall paper 라는 어플을 켰는데 해킹을 당한건지 누가 내 컴퓨터 만진건지 ㅋㅋㅋㅋㅋㅋㅋ 아주 휘황찬란하게 움직이는 모니터를 만들어뒀는데 야하니깐 사진으로 대체 ㅋ 뒤져라 열심히 쓰던 논문 교수님이 지원 못해줄꺼같으니까 쓰지말라고하셔서 속상한 마음에 그 말을 들은 날 바로 집에 있던 헤네시 들고 부산으로 내려감 그러고 언제든 편하게 만나주는 수진님과 드렁큰 타이거 모드 겁나 부었다 속상한 마음에 이것도 같은 날 ㅋㅋㅋ 아니 전통주를 저런 잔에 주니까 마음만으로 취하는 느낌이랄까? 덕분에 잠시나마 덥덥한 마음을 술로 달랬다. 요즘 연구실에서 입는 CVPR 옷 논문 쓰면서 마음을 다잡을라고 입었다. 그러고 나서 다시 글 쓰겠다고 다짐하며 한 번더 2트 제안 교수님은 흔쾌히 수락 하지만 바로 다음날 CVPR은 준비하고 있냐며 말씀하시는 우

CVPR 2023 in vancouver [내부링크]

오랜만에 적는 일상 글 아직 일본에 간 것도 못 적었지만(ㅜㅜ) 석박 1학기차가 CVPR에 있으면서 보고 느끼고 하는 것들을 기록해보려 합니다. 물론 노는 것도 ㅋ 인천공항에 가면 라이엇에서 이런 AR을 활용한 멋진 기술을 보여준다. 롤은 안하지만 목이 너무 말라서 들어가서 체험하고 받았슴다 그리고 나는 에커 캐나다를 탔는데 인상 깊었던 것이 우리나라는 항상 젊은 사람들이 승무원을 하는 반면에 에어 캐나다는 승무원이 다색인종에 연령대도 굉장히 다양했다. 중년층의 어르신들이 좋은 서비스를 제공하니 무게감이 있는 듯해서 좋았다.(물론 젊다고 없다는 것이 아님) 암튼 그렇다 총 기내식을 두 번 먹었는데 맛있었다. 아침은 과일같은걸로 했는데 정신 없어서 못 찍었다 완벽한 숙소뷰와 뱃지 엄청난 학회장 규모 실로 밴쿠버 컨벤션 센터는 뷰도 엄청나고 크기도 엄청나다 크기는 벡스코랑 비슷한 것처럼 보이는데 앞에 바다 뷰 때문에 훠~~~~~~~~~~~~~얼씬 넓어보인다 진심 뷰 미쳤다 이런 곳이 학

CVPR 2023 in vancouver (2) [내부링크]

2일 차 CVPR2023 굉장히 피곤한 발표를 마치고 나서 오늘은 뭔가 좀 한적한 날이었다. 다만 그럼에도 불구하고 코드짠다고 잠을 안자서 굉~장히 피곤해서 결국 몇 개 못돌아 다녔다 ㅋㅋ 그 몇 개를 풀어보는 시간 .. 오늘도 새벽 6시에 기상해서 밥먹으러 갔는데 어제랑 똑같았다. 근데 CVPR 최고학회인 명성에 비해 아침은 진짜 ;; 계란 / 빵 / 사과 / 오트밀 이 끝이다. 그마저도 빵은 항상 동나있기 때문에 뭔 맛인지 침도 못삼켜봤다... 그래서 대안으로 생각한게 호텔에 뜨거운 물이 없으니 뜨거운 물을 퍼주는 학회장에 가서 라면을 끓여먹자 ! 였는데 그래서 나온게 위 사진이다 ㅋㅋ 여러 컵에 뜨끈한 물 여러번 가져와서 라면에 넣어먹었는데 이거 진짜 생각보다 맛있음 ;; 왠지 한적한 오후에 바람 많이 부는 곳에서 앉아서 끓여먹은 라면 맛이랄까..? 진심 쵝오 신라면 쵝오 오랜만에 물린 입이 뚫렸다... 후 그 다음 우리는 Prompt in vision 튜토리얼 들으러 갔다.

CVPR 2023 in vancouver (3) [내부링크]

어느덧 3번째 글 오늘은 Main conference 첫 날입니다. 굉장히 시간이 빠르네요 시차를 적응 못해서인지 밤마다 일해서인지 ;; 일어나도 일어나도 피곤쓰.. 암튼 형이랑 나는 학회에 더럽게 맛없는 아침밥을 안먹기로 하고 오늘은 호텔 아침뷔페 먹으러 갔답니다. 인당 4.2인데 여기와서 돈 쓴곳이 없기 때문에 맛있는 걸 좀 먹고 싶었습니다. (학교에서 돈 나오기두 하고) 물론 아침이라 든든~ 하게 먹을 건 없지만 그래도 돈x랄을 좀 했습니다. 아니 근데 사실 베네딕트가 뭔지도 모름. 다 먹고 난 아직도 모름; 굉장히 서양식 음식 맨날 덜익은 계란먹다가 와 이 오믈렛 진짜 뒤진다 소시지도, 와플도, 메이플시럽도 오랜만에 입 호강 했다. 여기는 아래 링크인 호텔이고 밴쿠버 올 일이 있다면 강추 !!!!1 Fairmont Waterfront - Luxury Hotel in Vancouver (Canada) Previous Next Open gallery Active slide: sl

CVPR 2023 in vancouver (4) [내부링크]

이제 거의 끝나가는 학회 시간 참 빠르다 전체로 보든 짧게 보든 암튼 오늘의 일상은 넘무 피곤해서 그림위주의 글이 될 것이다 .. 흑흑 새벽에 일나서 과제 정리하기 LG랑 진행하는 과제가 다 끝나가기 때문에 틈틈히 시간날 때마다 정리해둬야 7월에 논문을 제출할 수 있을 것 같다. 아이디어는 얼추 다 생각해뒀고 실험 - 잘 나오는지 확인 등의 시간만 걸치면 될꺼 같은데 한국내려가면 7월부터 20일정도 실종될 예정이다. 단, 집 옮기고 해야해서 하 ;; 쓸 수 있을랑가 모르겠네 글고 오늘 아침에 처음으로 스벅을 갔다 학회에서 커피가 넘쳐흐르기 때문에 먹을 필요가 없었는데 모처럼 형이랑 여유 좀 즐겨보자 하면서 갔다 ㅋㅋ 근데 거기서 하나남은 색변하는 컵이 또 있는 걸 보고 바로 구매했다. 나 한국에서 이거 살 때 윗돈주고 샀었는데 ㅜㅜ 기존에 가지고 있는 거랑 빨대도 다르고 색상도 달라서 그냥 내가 쓸 예정이다. 참고로 캐나다 스벅도 종이 빨대임 근데 웃긴건 밖에 코팅을 아주 빡시게 해

DETR's Loss [내부링크]

이번 글은 간단하게 최근 찾은 궁금증과 그에 관한 이유에 대해 정리합니다. 저는 최근 Deformable DETR(D-DETR)을 사용하다가 loss 부분을 건드리게 되었는데 코드를 보던 중 문득 이상한 것을 확인할 수 있었습니다. 아래와 같습니다. def forward(self, outputs, targets): """ This performs the loss computation. Parameters: outputs: dict of tensors, see the output specification of the model for the format targets: list of dicts, such that len(targets) == batch_size. The expected keys in each dict depends on the losses applied, see each loss' doc """ outputs_without_aux = {k: v for k, v in o

Online Continual Learning on Class Incremental Blurry Task Configuration with Anytime Inference-PPT [내부링크]

UVLL에서 매주 한국인들은 발표하는 시간을 가집니다. 자신이 하는 분야에 대해서 정리해서 발표하는데 사실 자신이 이해했던 내용을 기반으로 간단하게 정리하는 시간이라고 볼 수 있습니다. (논문을 보는 시간이 길지 않으며 짧게는 2 ~ 3일 만에 발표하는 내용도 있어서 확실하다고 장담하지는 못하지만 나름의 연구 흐름에 대해서는 이해할 수 있습니다.) 저는 이번에 처음 발표를 하게 되었습니다. 앞으로 종종 제가 발표한 내용에 대해서는 글을 올리도록 하겠습니다. 영상은 UVLL 유튜브에서 확인할 수 있습니다. 저도 발표를 잘하는게 아닌지라 발표 링크를 달지는 않겠습니다 ㅋㅋ.. 언제 좋아질련지(더듬더듬) 핵심 부분 이미지만 하나 첨부하겠습니다. Important H UVLL : UNIST Vision&Learning Lab 울산과학기술원(UNIST) Vision and Learning 연구실의 연구 발자취를 남기는 공간 www.youtube.com 유튜브 Online Continual L

Ubuntu 서버 포멧이후의 CUDA, cuDNN, Toolkit, GPU 확인의 모든과정 [내부링크]

필요한 부분만 보려면 CTRL + F (찾기)를 눌러서 이동하세요. (목차) 0. 서버 세션 타임 아웃 변경 및 기존 드라이버 삭제 1. 서버의 장치 확인 2. 패키지 업데이트 3. GPU CUDA 버전 확인 및 cuDNN 버전 확인 4. 쿠다 툴킷 설치 5. cuDNN 설치 0. 서버 세션 타임 아웃 변경 및 기존 드라이버 삭제 서버 TMOUT 설정시 우리가 값을 입력하지 않으면 서버 세션이 계속해서 꺼지게 됩니다. 이를 방지하기 위해서 TMOUT 값을 변경하거나 주석처리 합니다. TMOUT는 초 단위로 계산됩니다. TMOUT은 sudo nano /etc/profile 명령어를 통해서 조절할 수 있습니다. 또한 기존에 존재하던 NVIDIA 드라이버 관련되어 있는 파일들은 오류를 일으킬 수 있기에 모두 제거해서 깔끔한 상태를 만들어줍니다. 새로 포멧한 GPU는 할 필요없습니다. $ sudo nano /etc/profile # TMOUT 확인 $ sudo apt-get remove -

Ubuntu 서버 포멧 이후 과정 2) 아나콘다 설치 및 시간설정 [내부링크]

이번 글은 아나콘다의 설치 및 환경 설정에 대해 다루고 있습니다. 혹시 아나콘다 이전의 GPU 설정에 대해 확인하고 싶다면 아래 링크를 참조할 수 있습니다. Ubuntu 서버 포멧이후의 CUDA, cuDNN, Toolkit, GPU 확인의 모든과정 필요한 부분만 보려면 CTRL + F (찾기)를 눌러서 이동하세요. (목차) 0. 서버 세션 타임 아웃 변경 및... blog.naver.com 1. 아나콘다 다운 및 설치 링크 : https://www.anaconda.com/download/ 아나콘다 설치를 위해서 링크에 접속합니다. 우분투로 접속하면 바로 다운로드 가능합니다. - 아래 다운로드 버튼 선택하기. 참고로 여기서는 wget 명령어를 통해서 바로 설치할 수 있습니다. (로컬에 받고 서버로 옮기는 뻘짓을 할 필요가 없습니다.) Download에서 우클릭을 하고 링크를 복사합니다. copy link address. 복사한 주소를 가지고 다운을 원하는 경로에서 명령어를 사용하면됩니

Ubuntu 서버 포멧 이후 과정 3) 보안, 방화벽, 포트 변경 [내부링크]

이번 글은 최종적으로 해킹당하지 않기 위해서 해야하는 아주 기본적인 보안조치에 대해서 다루고 있습니다. 최근 연구실들의 컴퓨터가 좋아짐에 따라서 해킹사건이 많아지고 있는데 이러한 문제를 예방하기 위해서 거의 필수적으로 해둬야할 사안에 대해서만 정리하였습니다. 간단하게 진행할 수 있습니다. 0. 호스트 명 변경 서버를 설치하고 나면 호스트 명을 변경하는 것이 중요합니다. 변경 전에에는 임시적으로 문자와 숫자로 구성된 알아볼 수 없는 일련번호로 구성되어 있으므로 여러 서버를 이용하거나, 서버를 관리할 때 힘들어 집니다. 따라서 서버에 특정 이름을 붙여서 구분할 수 있도록 하는 작업을 사용합니다. 여기서는 IP의 제일 뒷 번호를 기준으로 이름을 설정합니다. 우선 현재 호스트 명을 확인합니다. $ hostname $ sudo hostnamectl set-hostname {150server} { }에 작성된 것처럼 호스트 명을 변경하는 작업을 수행합니다. 그리고 다시 hostname을 확인합

KT 채용형 인턴 [내부링크]

오랜만에 적는 직업 인터뷰 글입니다.. 친구들도 어느 덧 하나 둘 취직을 하다보니 글을 적는 빈도가 자연스럽게 줄어드게 되네요 ㅎㅎ.. 이번 글은 KT 채용형 인턴에 이번에 합격하게된 친구입니다. 제 주변에서 KT를 채용형 인턴으로 들어간 친구들이 많은데 그 만큼 인턴을 통한 정직원 루트도 고려해보는 것을 추천드리기 위해 인터뷰를 하게 되었습니다 ~~ 그럼 바로 시작하도록 하겠습니당 ~ (언제든 후배들을 위해 인터뷰 흔쾌히 해주실 분이 있다면 환영입니다~~) 1. 스펙 -> 자격증 없음. -> 봉사활동 없음. -> 어학성적 토익 810 (KT 지원서 제출 시 해당 성적 없었음) -> 정보통신공학 졸, 학점 3점대 후반 -> 학부논문 4회 작성(학부논문대회 수상 有, 주제: 패킷 통신, 자율주행 등) -> 스타트업(AI개발) 인턴계약직 근무 경험 -> 대외활동 및 수상(교내/교외) (팀장 경험 有) 캡스톤 디자인 관련 수상 4회 부산지역 AI 관련 대회 우수상 수상 전국단위 학부생 논

Overcoming catastrophic forgetting in neural networks [내부링크]

parameter regularization의 초기 방법론으로 제안된 EWC에 대해서 설명합니다. 간단한 매커니즘에 비해서 강력한 성능을 보였기에 아직도 비교대상군이 될 뿐더러 다양하게 변화시켜 많이 적용되는 방법입니다. 핵심 설명 당 정리는 Survey paper에서 정리한 내용입니다. 핵심적인 내용은 사실 파라미터의 중요한 Feature를 찾아낼 수 있는 Fisher matrix를 사용해서 이전의 정보가 변화하는 것을 규제하고 여분의 공간에 새로운 task에 대한 파라미터를 업데이트하는 것입니다. 위에서 가장 아래 부분에 작성된 파란색 부분이 해당 Loss를 말하는 것인데 필기가 좋지못해 죄송합니다. 아무튼 위에서 작성된 내용을 그림으로 살펴보면 아래와 같습니다. Task A에서 학습된 파라미터의 중심인 세타(A)^* 에서 중심 점(mean)을 찾고 해당 수치가 Task B에서 학습되는 공간으로 완전히 이동하는 것을 방지하는 것입니다. 위 그림에서는 아무런 규젤를 하지 않았을 때

Online Continual Learning on Class Incremental Blurry Task Configuration with Anytime Inference [내부링크]

이번에 소개할 논문은 2022 ICLR 에 제시된 CLIB 논문입니다. Continual Learning (CL) 분야의 online 설정 내에서 새로운 훈련 방법을 제안하며 보다 효과적으로 성능을 측정하는 방법과 모델의 손실값을 기준으로 데이터를 수집해서 메모리를 구성하는 방법에 대해 제안하는 논문입니다. 분류 문제를 다루고 있습니다. 해당 글은 노션으로 작성되었습니다. Summary 본 논문에서는 online continual learning을 위한 sample-wise importance와 adaptive LR scheduling 방법을 제안합니다. Sample-wise importance는 각 샘플의 중요도를 계산하여 훈련에 사용되는 데이터를 선택하며, adaptive LR scheduling은 데이터에 최적화된 LR 스케줄링 방법을 제안합니다. 또한 모든 모듈을 오로지 메모리로 구성된 데이터를 사용해서 훈련함으로써 직접적인 셋업의 영향을 최소화 하는 것을 보였습니다. 아래는

PR12 - Deformable Convolutional Networks [내부링크]

오늘부터 일주일에 2 ~ 3번은 PR12라고 하는 유튜브 논문 읽기 모임 영상을 보고 간단하게 정리하는 시간을 가지려고 합니다. 저도 모든 논문을 볼 수 없다는 것에 아쉬워 하던 참인데 딥러닝의 유명한 분들이 모여 정리해주는 영상이 있어 정말 감사드리고 있습니다. 정리는 논문 읽기 모임에서 발표하시는 것과 흐름을 같이하지만 모르거나 궁금증이 있는 부분에 대해서는 추가로 논문을 살펴보며 정리할 예정입니다. 당연하게도 해당 논문 읽기 모임 영상을 보고 난 후 올리는 글이기 때문에 해당 글은 흐름을 파악 및 요점 등에 대해서 이해하는 식으로 사용하고, 영상을 보시는 것을 추천합니다. 처음으로 Deformable Convolutional Networks에 대해 알아봅니다. 해당 논문은 Deformable-DETR의 핵심 요소로써 사용되기도 하였기에 중요한 논문입니다. Introduction 해당 논문은 Conv 및 RoI Pooling과 같은 부분이 항상 고정되어 있는 CNN이 정해진 Fi

CLASS-INCREMENTAL LEARNING WITH REPETITION [내부링크]

이번에는 새로운 Continual Learning의 방법을 제안하는 논문을 살펴봅니다. 이는 Class-Incremental Learning with Repetition (CIR)이라고 하며 2023.01에 arXiv에 제출되어 있는 논문을 기준으로 살펴보았습니다. 논문은 기존의 제안된 방법인 Class Incremental(CI)와 Domain Incremental(DI)의 중간에 위치하며 여러 파라미터에 의해 제어되는 데이터 제너레이터가 특정 클레스들을 반복해서 데이터 스트림에 사용할 수 있도록 도와주는 것을 의미합니다. 아직 정식으로 학회에 인정되지 못했지만 다방면으로 제시될 것으로 파악되어 미리 논문의 핵심부분을 정리하고 간단하게 알아봅니다. Abstract CIR은 반복이 포함된 클래스 증분 학습에 대한 설명입니다. 저자들은 단일 데이터 세트와 몇 가지 제어 매개 변수로부터 다양한 CIR 시나리오를 생성하는 두 가지 확률적 시나리오 생성기를 제안합니다. 또한 제안한 생성기를

Avalanche [continual-learning] - 01 [내부링크]

오늘은 Continual Learning(CL)에서의 연구에 많은 전략들을 포함하고 있는 Avalanche 라이브러리에 대해 알아봅니다. 넘파이, 사이파이 등등의 다른 라이브러리와는 다르게 얘네들은 CL 전략을 쉽게 사용할 수 있도록 하고, 새로운 전략을 작성하기 위한 초기 발판을 만들어주는 것에 집중하였습니다. 따라서 다른 어떤 툴 혹은 모듈을 만드는 것에 사용되기 보다는 정말 CL 전략을 만들고, 테스트하고, 실험해보는 것에 적합합니다. Avalanche 라이브러리는 네 가지 핵심 모듈로 이루어져 있습니다. Benchmarks: 이 모듈은 연속 학습 데이터 처리를 위한 통합 API를 제공하며, 하나 이상의 데이터셋에서 데이터 스트림을 구성하는 기능이 포함되어 있습니다. 또한, 다양한 연속 학습 벤치마크를 포함하고 있어 이를 편리하게 사용할 수 있습니다 (torchvision과 유사한 역할을 합니다) Training: 이 모듈은 모델 훈련에 필요한 다양한 도구를 제공합니다. 새로운

Avalanche [continual-learning] - 02 [내부링크]

해야할게 많으니 빨리 정리하고 사용하러 가야겠습니다. 해당 라이브러리를 사용함으로서 CIL의 기본적인 전략들은 내가 직접구현할 필요없이 사용할 수 있기에 편리하게 되었습니다. 또한 classification 문제에서 다룰 수 있는 것들은 해당 라이브러리를 통해 사용하면 되니까 편리합니다. Dataset 첨부파일 07_datasets.ipynb 파일 다운로드 Avalanche에서 어떻게 데이터셋을 다룰 수 있고, 효과적으로 변경할 수 있는지를 정리하였습니다. 핵심만 살펴보도록 하겠습니다. AvalancheDataset import torch from torch.utils.data.dataset import TensorDataset from avalanche.benchmarks.utils import AvalancheDataset # Create a dataset of 100 data points described by 22 features + 1 class label x_data =

Multi-GPU 파일 저장 및 삭제 주의사항 [내부링크]

이번 글은 비교적 간단합니다. 이번에 확인하게 된 Multi-GPUs의 오류에 대해 공유하고자 합니다. 신기하게도 얘는 사용할때마다 새로운 잔버그가 발생하고, 오류가 발생합니다... 각설하고 오늘은 여러 프로세서를 사용하는 중에 파일을 저장하고 삭제하는 상황에서 발생하는 DDP의 오류에 대해 살펴봅니다. 간단합니다. 문제점 def construct_combined_rehearsal(task:int ,dir:str ,rehearsal:dict ,epoch:int ,limit_memory_size:int ,list_CC:list, gpu_counts:int, ) -> dict: # 각 GPU에서 파일을 저장합니다. _save_rehearsal_for_combine(task, dir, rehearsal, epoch) # 각 GPU 프로세서의 싱크를 맞추기 위해 시간이 필요합니다.(없으면 오류 발생의 가능성이 매우 상승) dist.barrier() # 각 GPU에서 실행된 replay bu

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis [내부링크]

Nerf ? NeRF란 새로운 연속적인 이미지 뷰를 만들어 내는 것을 말합니다. 기본적으로 하나의 객체를 다양한 시점에서 촬영한 이미지들을 가지고 3D로 해당 객체를 살펴볼 수 있는 것을 말합니다. 아래는 NeRF에서 처음으로 확인할 수 있는 이미지 입니다. 매우 요약적으로 잘 설명하고 있는 그림인데 아래와 같이 좌측에서 찍은 다양한 각도에서의 이미지를 제일 오른쪽에 보이는 3D 이미지로 변경하는 것을 말합니다. Discrete한 이미지들을 통해서 Continuous한 View를 만들어내어 입체적으로 확인하는 것을 말합니다. 각 포인트의 점을 말하는 (x, y, z) 관련한 값과 시점을 표현하는 ( $\theta$, $\phi$ ) 를 통해 간단한 MLP의 입력을 구성하고, 출력은 Density와 RGB 값을 사용합니다. NeRF는 3D로 표현되는 함수를 구성하는 것을 말하며 이는 Implicit Representation이라고 말하기도 합니다. Implicit NeRF와 같이 ML

한 달 [내부링크]

2월 초 ~ 3월 14일까지 미친듯이 현생을 살았던 일을 기록해보려 한다. 거의 한 달만에 글을 쓰는 것 같은데 블로그를 시작하고 가장 오래 쉰 것 같다 ㅋㅋㅋ 암튼 나중에 글 올려야지 ~ 하면서 찍어두던 일상 사진들이 있는데 거진 한 달 간 어떻게 음침하게 살았는지 기록해본다 우선 나는 한 달 전에 교수님께 하나의 슬랙을 받았다.(메신저) 대충 발표한 아이디어가 괜찮았으니 논문으로 만들어서 적어보자. 라는 것이였고 나도 좋은 기회라고 여겨 하겠습니다 !! 라고 당차게 말했다. 대부분의 딥러닝 연구가 베이스는 깃허브에서 적절한 모델을 골라서 시작하는 컨셉을 취한다. 근데 내가 하는 continual learning 분야는 사람들이 코드를 잘 올려두지 않는다;;; 왜인지 모르겠다 이건 진짜 올려두더라도 엄청 옛날 것 혹은 정리해서 올리겠습니다 라고 말만 적어놓고 1 - 2년이 되도록 올리지 않는 경우가 허다하다. 그래서 나는 내 실험을 위해서 베이스 부터 코드를 짤 필요가 생겼는데 여

Mosaic Augmentation, CutMix [내부링크]

해당 방법은 Yolov4에 소개된 방법으로서 이미지 여러 장을 적절히 짜르거나 늘려서 하나의 이미지로 만드는 것을 말합니다. 이는 모델 성능을 조금이라도 더 높이기 위해 고안된 방법으로서 객체가 많이 등장하는 영상을 모델일 학습할 수 있도록 하는 것으로 CNN에서 주로 많이 사용되었습니다. 제가 이 방법을 사용하기 위해서 직접 코드를 작성하였고, 논문에 사용하려 했으나 아쉽게도 사용하지 않은 계기로 그냥블로그에 올려두려고 합니다. 깃허브에는 하나의 전체 모델에 넣어두었기에 찾기 쉽지 않을터이니 여기에 적어두도록 하겠습니다. 우선 알아두어야 할게 원래 MA or CutMix 방법은 이미지들을 다양한 크기로 짜르거나 늘려서 하나의 영상으로 만드는 작업을 취하고 있는데 저는 성능을 높이는 것이 목적이 아닌 Continual Learning의 목적으로 사용하려 했기에 모두 동일한 사이즈로 조절하고 이를 하나의 영상에 취하는 작업을 하였습니다. 우선 전체 코드를 붙여두고 각 요소별로 하나씩

KT [내부링크]

KT 통신사 인프라 정보통신 이번 글은 KT에 들어가게 된 지인입니다. 정보통신공학과의 동기이기도 하고 통상적으로 우리과의 많은 인원들이 가기를 원하는 통신사 계열에 취뽀하게 되어 망설임 없이 인터뷰하였습니다. 면접과 같은 민감한 질문에 대해서는 자제하였으며 혹여나 더 많은 정보가 알고싶다면 알려주세요 :) 취업당시 스펙 자격증은 무선 설비 기사 자격증 하나를 따놓은 상태였습니다. 어학은 토익 880점, 학점은 4.2이며, 대외활동은 따로 한 경험이 없습니다. 인적성 준비는 서류 합격을 한 이후 KT 전용 인적성 책을 사서 풀었습니다. 잘 안 풀리거나 시간이 많이 걸리는 유형 같은 경우에는 유투브에서 검색하시면 자세히 설명해주는 강의가 많으니 참고하시면 좋을 것 같습니다(소금물, 거시속 등). 또한, 인적성 시험 때 KT는 A4에 적어서 풀지 못하고 마우스로만 풀어야 하기 때문에, 노트북보다는 화면이 큰 데스크탑으로 하시는 게 좀 더 편하실 것 같습니다. 2. 자소서 KT만을 위한

Deep Class Incremental Learning: A survey [내부링크]

이번 글은 앞으로의 CL 방향성과 어떠한 논문을 읽을지 조사를 위해 Continual learning 분야의 최신 Survey를 정리하였습니다. 제 기준으로 관심있는 논문들을 골랐으며 해당 서베이에서 제공하는 간략한 설명을 추려서 논문에 대한 부가 설명을 작성하였습니다. 혹시 유사한 부분을 공부하시는 분이 있다면 조언 부탁드립니다 :) 더 정리된 글을 읽으시길 원하신다면 이 글 아래 노션을 이용하시길 추천드립니다. 문제 정의 기본적으로 Continual learning은 class-incremental learning(CIL)을 의미합니다. CIL은 이미 훈련된 클래스에 새로운 클래스를 추가하여 모델을 학습시키는 것입니다. 최종적으로는 모든 클래스들을 잘 검출해야하는 것을 목표로 두고 있습니다. 반면에 Task-incremental learning(TIL)은 훈련 단계에서 미리 할당한 각각의 태스크별로 모델을 학습시키며, 최종적으로 객체를 검출할 때는 task index와 같은 부가

Rainbow Memory: Continual Learning with a Memory of Diverse Samples [내부링크]

2021 CVPR 에 제출된 논문입니다. CL 중 Replay 전략을 수정하였는데 불확실성이라고 하는 수치를 통해 이미지들을 정렬하고 수집하게 됩니다. 또한 불확실성을 높이기 위해 다양한 augmentation을 적용합니다. online 셋팅에서의 강함을 나타내고 있으며 blurry setup 이라고 불리는 데이터 재생방법을 사용합니다. 실험적으로 regularization, replay 들과 비교하며 보다 좋은 성능을 기록하는 것을 확인할 수 있습니다. 중요한 내용만 수록하였으며 환경 셋팅에 대한 설명은 정리하지 않았습니다. Introduction 저자들은 episodic memory를 활용한 CL 전략을 제시합니다.(replay or rehearsal) 위와 같이 흔히 CL에서 사용되는 셋업이 아닌 Blurry-CIL을 사용해서 문제 해결을 위한 환경을 설정합니다. 이는 disjointed setup에 비해 realistic한 특성을 가지고 있으며 current task를 학습할

Pytorch Optimization Overview [내부링크]

파이토치를 통해서 딥러닝 모델을 사용할 때, Loss를 줄이는 형태로 모델을 업데이트하게 되는데 이때 업데이트를 하는 방식을 정의하는 것이 Optimization 기법들이 하는 일입니다. 이전에도 이와 유사한 글을 사용했는데 이번에는 코드를 곁들어서 사용하는 방법을 정리하였습니다. 이번 부터는 블로그에 정리한 글과함께 더 읽기 편하게 정리한 노션 링크도 같이 첨부해서 설명드리도로 하겠습니다. --- 이전에 작성한 Optimization 관련 글 Optimization Optimization Optimum sgd Adam optimizer pytorch 나름데로 이런저런 모델을 사용하며, 상황에 맞는 최... blog.naver.com --- 원문 Notion 링크 torch.optim(Algorithm) 이번 글을 시작하기전 위의 이미지를 참조하면 좋습니다. 정확히 특징들만을 가져와서 적어두었습니다. 또한 각 최적화 기법의 코드에서 수렴하는 Loss 값들의 변화를 살펴볼 수 있도록

공인노무사 [내부링크]

공인노무사 노무사 전문직 법률 이번 글은 이번에 노무사 시험에 합격한 형님입니다. 중국에 오랜 기간 살다와 한국이 낯설만도 한데 군대도 다녀오고 3년에 걸친 길고 긴 시험 중에도 포기하지 않은 멋진 행님입니다. 총 두 편으로 이번 편은 기존에 작성하던 글과 유사하게 질문하였으며 다음 편에는 이후 실무는 어떤 과정으로 진행되는지에 대해 다룰 예정입니다. 정성스러운 글 써준 형에게 무한한 감사를 표합니다! 1. 간단한 자기 소개 및 취업성공 당시 스펙 저는 제31회 공인노무사 시험에 최종 합격한 30대 남자입니다. 2차 시험 점수는 노동법 63.77, 인사노무관리 62.76, 행정쟁송법 58.23, 민사소송법 57.77로 평균 60.89로 합격하였습니다. 저는 중국 다롄이라는 도시에서 중∙고등학교를 다녔고, 베이징에서 학부와 석사를 졸업했습니다. 약 13년 정도 중국에서 거주하였습니다. 시험 준비 전에는 스펙이라고 할 것이 없는 게 애초에 중국 현지에서 박사과정을 이어갈 생각이었고 계속

Notion [내부링크]

Notion Notion Affiliate 노션 제휴 노션 소개 노션 사용 안녕하세요 !! 오늘은 제가 Notion Affiliate가 된 기념으로 제가 사용하는 Notion을 알려드리며 동시에 소개하는 글입니다. 저는 항상 Notion을 사용해서 글을 정리하고 블로그를 통해서 공유하고 있었습니다. 노션 글을 공유하지는 않았고 노션에 적은 글을 블로그로 재가공 해서 올리고 있었는데 가끔가다가 블로그로 이쁘게 정리되지 않는 내용들은 노션 링크를 그대로 첨부하고는 했었습니다. 그렇게 몇몇 노션을 공유하다보니 자연스럽게 링크를 타고 접속해서 보시는 분들이 생겼는지 이번에 노션측에서 Affiliate 제의를 받게 되었고, 저는 제 글을 공유하면서 노션을 홍보만 하면 되는 것이기에 흔쾌히 수락하게 되었습니다. 딱히 본다고 제가 이득보는 것은 없지만 제 링크를 통해서 노션을 가입 및 결제(Businessd or Plus)를 하게 되면 제가 어느정도의 Commision을 받는 형태인 것으로 보입

Meet [내부링크]

기차 안에서 작성하는 일상 글 이번에 가게 된 서울 나들이와 있었던 일들에 대해서 적어두려고 한다 ㅎㅎ.. 1월 18 - 21까지 서울에서 인공지능 강연을 들었던 나는 일주일 만에 또 가게 된 계기가 있었는데 엔비디아에서 앰버서더 인플루언서로서 초청되었기 때문이다. 다양한 AI 앰버서더들 중에서 몇 명을 뽑아서 인플루언서라는 이름을 붙여 개발자 Meet-Up에 초청해 주셨다. 사실 원래는 Meet-Up(밋업)하면 개발자 간의 네트워킹을 위해 시간도 가지고 여러 기업들의 동향 및 기술 동향 등 다양한 지식을 얻을 수 있는 시간인데 나는 아직 개발자도 아니고 대학원생도 아닌 인턴이라서 가서 할 수 있는 게 별로 없었다. 뭐 그래도 가게 된 이유는 회의실 친구들이랑 여행을 겸사겸사해서 가려고 간 거다 또 기회가 된다면 좋은 개발자분들과 안면을 트여둔다면 좋을 것 같아서 미팅도 미뤄가며 참석하게 되었다 ㅋㅋㅋ 미팅 준비하면서 강남까지 온다고 피똥 쌌다.. 암튼 나도 처음 온 밋업은 신기했다

Multi-GPU 싱크 오류 [내부링크]

서론 DDP를 사용하다 보면 이를 가지고 다양하게 응용하고 싶어집니다. 하지만 DDP는 싱크가 맞지 않게된다면 알 수 없는 오류를 계속해서 일으킬 뿐더러 해결하기도 정말 어렵게 만들어버립니다. 제가 연구하면서 있었던 여러가지 오류들을 발생하는 요인들을 살펴보고 정리합니다. 참고로 DDP는 웬만해서는 건드리지 않고 훈련하는게 정신건강에 이롭습니다. 해당 글은 DDP의 싱크를 맞추지 않음으로 생기는 문제를 해결하기 위해 사용했던 방법들을 제시합니다. 저는 아래와 같은 방법으로 해결했지만 모델, 데이터 스트림 등등에 따라서 해결법은 다양할 수 있음을 미리 알리고 작성합니다. 문제 정의 하나의 Epoch에 수많은 iteration이 있을 때, 제대로 훈련을 마치지 못하면 GPU Ram Over 현상이 발생합니다. 각 iteration은 독립적으로 동작하여 네트워크를 업데이트하기 위한 과정으로 각각의 GPU에서 저장된 Gradient 및 연산 값들은 GPU 어딘가에 저장되어 있다가 모델 마지

지도 교수님 인터뷰 [내부링크]

국립대학교 교수 교수님 이번 글은 제가 부경대학교에서 학부생으로 공부할 때의 지도 교수님을 인터뷰 하였습니다. 교수라는 직업을 가지게 된 계기, 석박 시절의 이야기, 학문을 공부하는 사람이 가졌으면 하는 덕목 등에 대해 질문을 드렸으며 해당 글이 학문의 길을 고민하는 많은 학생들에게 미약하지만 조금이라도 도움이 되었으면 하는 바람으로 교수님께 요청드리게 되었습니다. 전반적으로 교수라는 직업적인 질문보다는 먼저 학문적인 길을 걸으셨던 선배로서의 교수님에 대한 이야기입니다. 글 작성에 앞서 교수님에 대한 간단한 소개를 하자면, 교수님은 제가 학생 시절에 학업적으로도 정말 많은 지도를 해주셨고, 학문의 길을 고민하여 대학원에 지원할 때 인생상담 및 관련된 조언을 해주실 만큼 늘 친절하셨습니다. 학생들이 모르는 것을 질문하러오면 늘 같이 고민하고 답을 내주려고 해주셨으며, 중간-기말과 같이 시험을 치거나 간단한 평가가 있을 때에도 하루만에 성적이 올라올 정도로 항상 성실하십니다. 학부생 때

Pytorch Normalization overview [내부링크]

정규화 방법은 모델의 성능을 한층 더 끌어올릴 수 있는 방법으로서 요즈음의 딥러닝에서는 늘 사용되는 방법입니다. 다만, 적절한 테스크에 알맞는 방법을 사용해야 하므로 각 정규화 기법마다의 특징 또는 사용처를 알고 있으면 도움됩니다. 따라서 이번 글에서는 파이토치를 기준으로 바로 사용할 수 있는 정규화 기법들을 살펴보고 각각에 대한 특징 또는 설명과 간단하게 사용할 수 있는 방법까지 이해해보도록 합니다. 트위터에 좋은 그림이 있길래 우선 가져왔는데 해당 이미지와 뒤에 나오는 글을 대치해서 보면 이해에 도움이 되리라 생각됩니다. 물론 차원에 대한 이해가 약간은 필요한 것이 정규화 기법입니다. https://twitter.com/Xu_Cao_/status/1054634647945015296 1. BatchNorm2D 수식 : 설명 : 배치 정규화 기법은 1D, 2D, 3D로 Dimenstion 마다 사용할 수 있도록 나뉘어져 있습니다. 해당 방법은 딥러닝을 진행할 때 미니 배치 단위로 훈

Pytorch Initialization overview [내부링크]

오늘은 파이토치의 초기화 방법에 대해서 살펴봅니다. 파이토치에는 딥러닝 또는 머신러닝을 위해서 텐서라는 것을 만들고, 랜덤값으로부터 모델을 구성한 뒤 최적화 하도록 훈련하는 경향이 있습니다. 하지만 어디서 어떻게 시작하냐에 따라서 모델은 최종 수렴하는 점에 영향을 주게 되는데 이러한 랜덤 포인트를 어떻게 설정할지 또는 텐서의 값을 상수로 고정하거나 0으로 만들거나 할 수 있는 방법들이 init 내부에 존재합니다. 1. torch.nn.init.uniform_(tensor, a=0.0, b=1.0) 수식 : 설명 : 연속 균등 분포라고 불리는 uniform distribution을 사용해서 새로운 값을 생성하도록 도와줍니다. 값의 범위를 처음 부터 설정해두고 a ≤ x ≤ b 의 값을 가지는 값 분포가 생성됩니다. 참고 사항 : 활성화 될 범위를 특별하게 지정하지 않으면, 0 ~ 1에서 활성화 되는 값이 사용됩니다. 사용 방법 : import torch import torch.nn a

스토리로 살펴보는 2022년 [내부링크]

오늘은 인스타에 올렸었던 스토리를 이용해 간단하게 22년을 정리해보고자 합니다. 사실 공부하기 싫어서 뻘짓하는 겁니다 ㅋㅋ 1월이 된지 며칠이나 지난 이 시점에 글을 적는 이유는 단순히 정신이 없었기 때문입니다 ㅋㅋ 앞으로는 더욱 탄탄하고, 특징있는 정보 블로거가 되기위해 꾸준히 발전하도록 하겠읍니다.. 2022년 1월 부경대 홈페이지 영상 촬영 (1초 출연) 교수님, 나, 인환, 현열까지 봇라인 팀 총출동 밑에는 부경대에 올라온 우리팀 기사 사진 ! 2년 고생한 우리팀들과 2박 80만원 글램핑 예약 저기 진짜 좋은데 너무 비싸다. 이름은 두바퀴로 가는 자동차 글램핑장 어마무시한 가격답게 있을건 다 있고, 수영장, 영화관, 레저 4륜오토바이까지 모두 있다. 겨울에 가기 좋은 듯? 저길 가고 1년이 지난 지금 다시 친구들과 여행을 가려고 하고 있는 중이다 ㅎㅎ 학교에서 2등 상을 탄 대회가 있었는데 거기서 돈을 나한테 현금으로 꼽아줬다 그래서 팀원들한테 카카오 톡으로 뿌려버렸다 사실

메모리 확인 및 Closure 사용법 [내부링크]

파이썬 변수 메모리 확인, Closure, Decorator, pypler, asizeof, summary 이번 포스팅에서는 파이썬 내부에서 변수 또는 변수들의 집합의 크기를 확인하는 방법과 파이썬에서 정식으로 제공되는 코드 작성법인 Closure의 사용법을 알아봅니다. Closure가 무엇인지에 대해서는 간단하게 살펴보고 넘어가니까 혹시 이에 대해서 자세한 정보를 원한다면 구글링을 통해 학습하는 것을 추천합니다. 여기서는 응용법과 파이토치에서는 어떻게 사용해볼 수 있을까하는 고찰정도로 봐주시면 좋을 것 같습니다. 파이썬 변수 메모리 확인 방법 파이썬에 기본으로 제공되어지는 sizeof() 방법은 메모리를 계산함에 있어서 간단한 애들은 연산을 잘 해주나, 종속된 다른 변수들이 있는 경우에는 잘 측정되지 않는다고 합니다. 따라서 새로운 패키지를 설치해서 메모리를 측정하는 용도로 사용할 수 있습니다. 메모리를 측정하면 좋은 이유는 어떻게 커져가는지 모르는 데이터들의 용량을 확인해서 Ra

경찰공무원 [내부링크]

경찰공무원 공무원 경찰 순경 친구 오랜만에 돌아온 인터뷰 시간입니다. 친구 중 한명이 이번에 경찰이 되어서 든든한 지팡이가 되었습니다. 처음 IT만 관련해서 질문하려고 했으나 친구가 적은 관계로 그냥 다양하게 해보기로 했습니다. 어차피 세상의 직업의 종류는 다양하니까요 ㅎㅎ 공무원 특성상 질문 보다는 시험이 우선이여서 시험에 관한 설명이 주로 되어있습니다. 1. 간단한 자기 소개(취업한 기업 등) 및 취업 성공 당시 스펙 2022년 2차 경찰공무원(순경) 공개경쟁채용 합격, 공무원 준비이기에 - 누리캅스(울산청 소속) 4년 활동 - 토익 640 - 한국사 능력 검정 1급 - 실용글쓰기 716점 준 2급 - 워드 1급 기술을 요구하는 직종의 공무원이 아니기에 특별한 대외활동이나 스펙은 따로 필요하지 않습니다. 누리캅스와 같은 경찰과 관련된 활동은 추후에 면접에 있어서 어필을 할 수 있는 요소로 작용할 뿐입니다. 한능검과 토익은 공무원 시험 자격을 얻기 위해 검정제로 시행되고 있어 일정

SW 마에스트로 [내부링크]

소마 SW마에스트로 소프트웨어마에스트로 SW 친구 이번 글은 소프트웨어 마에스트로를 수료한 친구입니다. 저랑 같이 팀을 이뤄서 활동을 하며 스펙을 쌓았었고, 웹 앱 개발에 중점을 두고 활동하였습니다. IT 위주의 인터뷰에 딱 알맞는 친구여서 요청하게 되었고, 흔쾌히 글을 써주었습니다. 이번에는 해당 활동에 참여하고 싶은 사람들이 주변에 몇몇 있는 걸로 알아서 지원당시의 스펙과 어떤 것을 주로 했었는지 알려달라고 요청하였습니다. 친구도 면접본지는 오래되어 확실한 과정은 생각나지 않는다고 했지만, 나름 열심히 작성하였으니 최대한 도움이 되길 바라겠습니다 :) 1. 소개 및 혜택 안녕하세요. 소프트웨어 마에스트로 13기 수료생입니다. 부경대학교 졸업 후 웹 프론트엔드 프리랜서로서 활동하다가 좋은 기회로 소프트웨어 마에스트로 알게되어 지원하였고 운이 좋게도 한 번에 합격하게 되어 1년간 활동하게되었습니다. 지금은 정식 수료를 마치고 회사와 계약한 상황입니다. 먼저 말해드릴 건 소마에 될 경

UNIST Interview 2(면접) [내부링크]

6. Gradient Descent Method 이번에는 가장 기본적으로 물어볼 수 있는 최적화 알고리즘 들에 대해서 알아봅니다. 이번엔 이전에 다룬 내용이 있으므로 같이 첨부 해두겠습니다. Optimization Optimization Optimum sgd Adam optimizer pytorch 나름데로 이런저런 모델을 사용하며, 상황에 맞는 최... blog.naver.com 제가 이전에 리뷰했던 내용입니다. 앵간한 옵티마이저는 대부분 조사해봤기 때문에 훑어보면 도움이 되리라 생각합니다. 이전과 동일하게 간단하게 여기서는 알아보도록 하겠습니다. 뉴턴 스텝(Newton's method) 일반적으로 사용되는 Gradient Descent를 위한 미분 값을 2차 미분에서 얻는 방법입니다. 2차 미분한 그래프의 최소값 방향으로 모델을 최적화하는 것을 말합니다. 해당 방법은 확실하게 수렴할 수 있다는 장점이 있지만, 2차 미분을 해야한다는 점에서과도한 연산량을 필요로 하기에 흔히 사용하

Deformable DETR Implementation Details 1 [내부링크]

여기서는 D-DETR의 코드를 논문과 이어서 살펴봅니다 부분부분 컴포넌트들이 어떤 동작을 하고 어떤 결과를 유도하는지 확인하는 형태로 보면 좋을 것 같습니다. 혹시 유사한 작업을 진행했던 분이 있다면 토론할 수 있으면 좋겠습니다 :) 잘 못 이해하고 있는 부분이 있다면 가감없이 바로 댓글 달아주시면 감사하겠습니다. 총 D-DETR 트랜스포머 동작 이전의 준비 요소들 인코더 디코더 결과 출력 Loss 로 나누어서 살펴볼 것 같습니다. 준비요소들은 비교적 적습니다. 준비요소 샘플 이미지 타겟 라벨 정보 Boxes, labels, image_id, area, is_crowded, orig_size, size(현재) / 대부분이 coco를 사용하기에 필요한 정보 Image Backbone Feature(Resnet을 백본으로 사용해서 4개의 Layer에서 피쳐를 가져오는 d-detr에서 꼭 필요한 정보입니다.) D-Detr의 백본은 torchvision에서 가져오는 것이며 Resnet18

Deformable DETR Implementation Details 2 [내부링크]

여기서는 Encoder 부분에 해당하는 코드 구현을 살펴봅니다. Encoder는 대체로 픽셀간의 관계성을 찾아내고, 객체를 찾아내는 것을 중점으로 합니다. 훈련을 진행할수록 객체의 말단 부분과 같은 곳에 집중하게 됩니다. 1. Encoder의 reference points 첫번째로 Encoder를 시작하기에 앞서서 해당 모델은 Deformable입니다. 기존에 모든 이미지의 픽셀 관계를 학습하는 것이 아닌 모든 픽셀 중 특정 Ref_points를 뽑아 거기서 offsets의 범위를 다양하게 해서 객체를 찾아냅니다. 이를 통해서 모델 훈련속도를 굉장히 줄이고, 검출속도도 빨라졌기에 알아두는 것이 중요합니다. 아무튼 여기서는 Encoder 부분의 어떤 점을 기준으로 삼을 것인지를 정하는 부분을 살펴봅니다. 코드는 전부 공식 Github의 Deformable-DETR에서 가져옵니다. class DeformableTransformerEncoder(nn.Module): def __init__

Deformable DETR Implementation Details 3 [내부링크]

이번에는 Encoder의 6개 Layer를 지나고 나오는 결과를 가지고 Decoder 에서 사용하는 부분을 확인합니다. 코드의 흐름 순으로 나열되어 있으니 이해가 가지 않는다면 블로그에서 다루지 않는 코드를 깃허브를 통해서 볼 수 있습니다. Decoder 이전 Decoder에 들어가기전 아래 이미지의 필요 요소들을 준비하는 과정을 거쳐야 합니다. 우선적으로 Object Queries(OQ)에 대한 정보가 필요합니다. 해당 OQ는 DETR에서도 사용되는 정보로서 초기값에 선언됩니다. OQ는 self.query_embed = nn.Embedding(num_queries, hidden_dim*2) 를 통해서 선언되는데 둘 다 사람이 설정 가능한 값입니다. hidden_dim은 256이었으므로 여기서는 512가 됩니다. 2배를 사용하는 이유는 하나의 쿼리가 [Pos, Cls] 두 개에 대한 정보를 모두 포함하는 Query이기 때문입니다. 해당 OQ가 여기 이 좌표에 이 물건이야? 라고 질문

Deformable DETR Implementation Details 4 [내부링크]

이번편에서는 마지막으로 정의하는 D-DETR의 출력단에 대해서 알아보고 Loss에 대해서도 같이 정리합니다. 비단, Detector의 중요한 것은 아키텍쳐도 있겠지만 이를 넘어서 출력을 잘 정의하고 Loss를 정의하는 것도 중요하다고 생각하는 만큼 따로 떼어놓고 작성하게 되었습니다. 1. 출력 정의 hs, init_reference, inter_references, enc_outputs_class, enc_outputs_coord_unact = self.transformer(srcs, masks, pos, query_embeds) outputs_classes = [] outputs_coords = [] 앞에서 작성한 내용입니다. 트랜스 포머의 출력을 받아서 사용하기 위해 출력을 받아줍니다. hs : output init_ref : 초기 좌표값을 말합니다. inter_ref : 각 Decoder layer에 의해 변경되는 좌표값을 말합니다. box_refinement를 사용했을 때 차

Hello Talk (헬로우 톡) [내부링크]

오랜만에 추천 해주고 싶은 어플이 있어서 가지고 왔습니다. 대략 영어공부 한다 해본 사람은 대부분 알고 있을 것 같은데, 저는 이번 기회에 처음 사용해봐서 정말 재미있게 잘 사용하고 있습니다. 영어를 쓸 일이 없는 퍽퍽한 삶에 계속해서 영어 사전과 파파고를 들어가게 만들어주는게 재미있습니다. 약간 속어 같은 것도 배울 수 있고, 나름 깔끔한 말도 배울 수 있어서 정말 좋은 것 같습니다. 아무튼 나는 왜 이 앱을 추천하는지 직접 만난 사람들과의 대화를 통해 소개합니다 !!! (그냥 영어하는 사람들이 쓰면 재미있을 것 같아서) 어플 모양은 이렇게 생겼습니다. 중국 어플인 것 같은데 중국인들이 사람이 많아서 그런가 아이디어 들이 좋습니다 ;; 우리 하나 만들 때 100개 만드는 느낌? 암튼 이 어플 들어가서 요로코롬 프로필 잘 설정해두면 연락이 많이온다. 외국인 친구들한테 !! 글고 아래의 moments 라는 곳을 선택하면 다양한 사람들이 올리는 글을 읽을 수 있는데 (스토리 느낌) 여기

솔플 제주도 2 [내부링크]

제주도 솔플 무려 5개월만에 적는 나의 솔플 여행기 갑자기 노래 듣다가 생각나서 이어서 적으러 왔습니당 ㅋ 일단 배경음악 깔아주고 ~ 진심 너무 좋아했던 아비치 ㅜㅜ 아직도 좋아합니다 암튼 1편에서 도착 첫 날만에 과음으로 인한 식중독에 걸려버린 나는 이틀째에서는 뒤질꺼 같았지만 강행했다 친구가 있었기 때문에 ; 어디 박혀있을 수가 없었다. 그래도 약 투혼으로 친구를 이끌고 처음으로 향한 곳은 선인장 군락 오랜만에 보는 문경찡 어후 ㅅㅂ 제주 월령리 선인장 군락이라는 곳이다 사람들이 많이 없어서 나른하게 걷기 좋았던 것으로 기억하는 중 다만, 선인장들이 다 죽기 일보직전이었다 아마도 우리나라의 바닷바람에게 진걸로 추측된다 요로코롬 사진도 찍어주고 잔잔함을 보여주기 위해 넣었다. 요로코롬 걷기 좋은 산책로처럼 생겼고 옆으로 따닥따닥 붙어있는 친구들이 전부다 선인장과 이파리로 추측된다 옛날 옛적에 어느 외국인들이 제주도에 들렸는데 그 때 옷에 묻어있던 선인장들의 씨앗이 여기 제주도 돌바

Multi-GPU Barrier() [내부링크]

최근 발생한 문제를 해결하는 글입니다. 서론 Multi-GPU에서는 모든 GPU의 동작이 적절하게 같이 이루어지는 것이 중요합니다. 예를 들어서 Multi-GPU에서 Loss를 합치거나 Weight 공유를 위해서 dist.all_reduct() 또는 dist.all_gather()과 같은 매서드를 사용하게 되는데 이 때 모든 GPU에서 하나의 값을 받기 위해서 다른 GPU들이 대기하거나 하는 현상이 발생합니다. 예로 1,2,3 GPU는 이미 Loss 값을 보낸 상태이고 ( 0.1 , 0.2 , 0.3 으로 보냈다고 했을 때) 4번 GPU에서 아직 Loss 값을 보내지 않았다면 1, 2, 3번은 자연스럽게 4번 GPU에서 Loss를 보내기 전까지 대기하게 됩니다. 근데 이 때 각 GPU 어디에서든 dist.barrier()와 같이 싱크를 위해 특정 GPU의 동작을 멈추게 만드는 코드를 사용하게 된다면 모든 GPU는 Utilize 100%를 보이며 정지하게 됩니다. 따라서 GPU의 동작

UNIST Interview(면접) [내부링크]

UNIST 면접 석박통합 대학원면접 인공지능대학원 12월 6일에 면접을 보고 올리는 따끈따끈한 글입니다. 직접적으로 질문한 내용을 콕 찝어서 말고, 제가 공부했던 내용을 적어서 올리려고 합니다 :) 저는 대답 못한 질문이 없었으니 충분할 것이라고 생각합니다. (기본상식 문제 제외) 저는 자세하게 기술하지는 않겠습니다. 제가 경험한 유니스트의 면접은 하나의 개념을 집요하게 물어보는 것이 아닌 정확한 설명과 이해하고 있는지 정도의 질문이었습니다. 물론 교수님마다 다를 수 있으니 중요한 개념에 대해서는 확실하게 이해하고, 어플리케이션까지 알아두면 좋을 것 같습니다. 실제로 어디에 적용되는지 알고 있으면 단어를 듣고 정확한 개념이 생각나지 않더라도, 어플리케이션을 떠올리면 조금 더 편하게 대답할 수 있기 때문입니다. 적어도 저는 그랬습니다. 암튼 본 주제로 넘어가서 제가 정리했던 핵심적인 개념들 위주로 설명하도록 하겠습니다. 아 참고로 유니스트 영어면접입니다. 말 도저히 못하면 한국어로 넘

[2022 마이 블로그 리포트] 올해 활동 데이터로 알아보는 2022 나의 블로그 리듬 [내부링크]

작년 목표 밤운자수 1만명 !! 올해 목표 방문자수 3만명 !! 내년 목표 방문자수 6만명 !! 2022 마이 블로그 리포트 2022년 올해 당신의 블로그 리듬을 알아볼 시간! COME ON! campaign.naver.com

Multi-GPU 총정리 5 [내부링크]

마지막으로 자세하게는 알아보지 않지만, 추가적으로 어떤 방법을 사용해서 Multi-GPU를 사용할 수 있는지 알아보는 글입니다. 추후에 사용할 일이 있다면 더 자세하게 작성할 것 같습니다. Apex 엔비디아에서 제공하는 Multi-GPU 방법이라고 합니다. [ APEX ] 근데 살펴보니까 Apex에 작성된 코드들은 결국 Pytorch에 업스트림되고, 현재 Distributed leaning 관련한 코드들은 이미 파이토치에 업데이트 적용이 완료되었다고 합니다. 따라서 따로 만들어서 실험할 필요는 없는 것 같습니다. 또한 Apex를 사용하는 이유 중 하나인 AMP ( automatic mixed precision )도 곧 파이토치에 업로드가 전부 완료도리 것 같습니다. Pytorch Lightning 요즘 가장 핫합니다. 더럽게 모델을 안짜도되고, 편하게 GPU도 사용할 수 있습니다. 또한 Multi-GPU를 사용하는 방법도 다양해서 취향에 맞게 선택할 수 있습니다. 시간상 여기까지 직

CoCo Format [내부링크]

Data Format COCO Json XML 데이터 형식 데이터 형식 변환 딥러닝을 사용해서 모델 훈련 또는 다양한 작업을 하려고 보면 항상 뒤따르는 문제가 있습니다. 데이터가 잘 정제되어 있고, 사용하기 편하게 제공된다면 해당되지 않지만, 내가 원하는 모델에서 데이터 형식을 지원하지 않거나 데이터 형식이 이상하게 엉켜있으면 필연적으로 데이터 포맷을 정리해야합니다. 저는 그런 경험이 여러 번 있었는데, 그 중에서도 모델에 가장 많이 사용되는 것 같은 COCO Format을 구현하는 방법 2가지 정도를 작성했던 코드를 통해 소개하려고 합니다. 저랑 같은 상황에 있다면 빠르게 사용하실 수 있지만, 다른 상황이라면 flow를 익히는 것에 도움이 되기를 바랍니다 ! 1. XML TO COCO xml_to_coco format 보통 양대산맥을 다루는 xml 데이터 입니다. 저는 xml을 모델에 사용한 적은 없지만 데이터를 꾸리면 보통 xml로 나오는 것을 흔히 보곤 했습니다. 보통 저는 c

Pytorch Efficient Tip [내부링크]

모델 수정 파이토치 모델 추가 효율적으로 모델 추가 파이토치 클래스 딥러닝 모델 수정 딥러닝 모델 추가 파이토치에서는 딥러닝 모델을 작성함에 있어 코드를 유연하게 적는 것이 중요합니다. 확장면에 있어서도 파이토치는 다양하게 방법을 제시하기 때문에 잘 사용하면 깔끔하고, 훨씬 사용하기 좋은 코드를 만들 수 있습니다. 여기서는 그러한 모델을 정리합니다. 코드를 새롭게 정의하는 방법을 다양하게 살펴보고, 원하는 형태를 최종적으로 선택해서 사용할 수 있도록 하는 것이 목표입니다. 기본 베이스 코드를 우선적으로 작성하고 거기서 늘리는 형태로 설명합니다. 베이스 라인 import torch import torchvision.models as models import torch.nn as nn class SimpleModel(nn.Module): def __init__(self): super().__init__() self.layers1 = nn.Sequential( nn.Linear(100,

Multi-GPU 총정리 4 [내부링크]

이번에는 앞서 소개했던 DDP의 동작에 대한 궁금점과 어떻게 하면 더 활용해서 사용해볼 수 있을까에 대한 개인적 견해의 글입니다. 궁금점 DDP 에서 진행하는 통신 기법 [ 링크 ] 통신기법이라 함은 DDP를 위해 데이터를 주고 받고 하는 것에 사용되는 모든 통신들을 말합니다. 위 링크를 통해서 들어가면 자세한 설명을 볼 수 있습니다. 여기서는 이런 동작들을 위해 어떤 코드가 사용되고 무슨 역할을 하는지 조사하였습니다. - dist.broadcast(tensor, src, group): src 의 tensor 를 모든 프로세스의 tensor 에 복사합니다. - dist.reduce(tensor, dst, op, group): op 를 모든 tensor 에 적용한 뒤 결과를 dst 프로세스의 tensor 에 저장합니다. -> reduce를 사용하면 하나의 GPU에 다 모아서 Loss 계산을 진행합니다. 이는 nn.DataParallel에서 사용하는 방식입니다. - dist.all_re

DETR Visulization [내부링크]

Hook Visualization model output DETR Transformer attention 해당 글은 DETR을 비롯해서 모든 Weigth를 사용하는 모델에서 중간 출력물을 확인하기 위해 조사하였습니다. 여기서는 Transformer 내부의 encoder출력을 확인하면서 시각화하는 작업까지를 확인합니다. 중간에 뇌피셜도 많이 포함되어 있어서 핵심만 파악하면 좋습니다. Deformable DETR은 DETR을 기본적으로 따르는 코드입니다. 아래는 DETR에서 제공하는 중간단 출력확인을 위한 코드입니다. 이것을 사용해서 모델의 중간 출력단을 확인합니다. Google Colaboratory Notebook Run, share, and edit Python notebooks colab.research.google.com # 위에서 설명한 DETR 모델을 불러오기 위한 코드입니다. 메타 측에서 이미 서빙해두었기 때문에 쉽게 사용할 수 있습니다. model = torch.hub.

Meta-attention for ViT-backed Continual Learning [내부링크]

2022 CVPR에 제출된 논문입니다. Transformer에 마스킹방법을 사용해서 Continual Learning을 진행하는 선두주자로서 소개되어집니다. 이전까지는 대부분 CNN에서의 뉴런에 대한 마스킹 방법을 사용했다면 이제는 Transformer의 개념을 활용하는 마스킹 방법들이 나오는 것 같습니다. 논문에 중점적으로 다루지는 않지만 배경으로 알아두면 좋은 것을 먼저 간단하게 정리하고 넘어가도록 하겠습니다. 사전 지식 1. Soft와 hard 머신러닝에서 흔히 사용되는 단어인 soft, hard는 의미하는 바가 동일합니다. 보통은 미분이 가능한 값으로 나타나면 soft, 미분이 불가능하게 딱딱 떨어지는 값으로 할당되면 hard라고 소개됩니다. 이에 대한 예시로써 soft label은 Softmax를 입힌 확률 값으로 볼 수 있고, hard label은 정확이 의미하는 인덱스 값 하나만을 나타내는 one hot encoding과 같은 값을 말합니다. 해당 단어는 지금 소개하는

Multi-GPU 총정리 [내부링크]

해당 글은 연구실에서 사용하기 위해 조사하였습니다. GPU의 등장으로 빨라진 인공지능 연산을 바탕으로 연산해야하는 모델의 양도 점점 늘어나게 되었습니다. 연산 가능한 파라미터의 수가 늘어날수록 데이터에 대한 피쳐를 많이 뽑아서 다양하게 저장할 수 있기 때문에 끝없이 커지는 모델들이 등장하였는데, 이러한 모델들은 싱글 GPU로는 도저히 감당할 수 없는 연산량을 보였습니다. 모델 하나를 학습하는데 한 달이 걸리기도 하고, 몇 달이 걸리기도 하는데 도저히 이러한 방법으로는 연구를 진행할 수 없었기에 여러 개의 GPU를 사용해 하나의 모델을 학습하는 병렬 GPU의 방법이 급부상하게 됩니다. 그에 맞추어 파이프라인, 라이브러리 등등에서도 GPU를 다루는 방법에 대해 각각 다양하게 제시하였는데 처음 등장했던 DP부터 현재 사용하는 DDP까지 사용법을 알아보고 어떤 코드로 구성되어 있는지, 특정 명령어가 어떠한 동작을 하는지, 어떻게 사용하면 더 극한으로 활용할 수 있을지 등을 정리해보려 작성하

Multi-GPU 총정리 2 [내부링크]

이번에는 1번 글에서 소개했던 DP의 단점을 커버하는 DDP에 대해 알아보고 어떻게 사용하는지 정리합니다. DDP도 사용방법에 따라 다양하게 이용할 수 있는데 해당 글은 2-1) mp.spawn을 사용해서 DDP 동작, DDP에서 전체적으로 사용하는 명칭들 2-2) torch.distributed.launch를 사용한 세세한 DDP 구현, torchrun이라는 stcript의 등장 정도로 글을 작성합니다. nn.DistributedDataParallel(=DDP) DDP에 총괄적으로 사용되는 명칭들을 정리합니다. 여기서는 spawn을 사용한 방식, launch를 사용하는 방식, 그냥 데이터 분산학습에서 흔히 사용되는 명칭을 정리합니다. os.environ[“CUDA__VISIBLE_DEVICES”] = 0, 1, 2, 3 : GPU 지정 —nproc_per_node = 4 : 프로세스를 할당( 해당 코드는 1개의 컴퓨터에 GPU 4개인 경우 ) // python -m torch.di

Multi-GPU 총정리 3 [내부링크]

이번 글에서는 앞선 2번 글에 소개하지 않았던 torch.distributed.launch 유틸을 사용하는 방법과 torchrun 유틸이라는 것의 등장 정도를 소개합니다. DDP with torch.distributed.launch ( torch 버전 1.10 미만 ) 가장 많이 사용되는 방법 여기서는 위에서 설명한 DDP의 실행 유틸인 launch를 사용합니다. 위는 mp.spawn을 사용해 각 GPU에 프로세서를 할당하는 방식을 이용했다면 여기서는 torch.distributed.launch 를 통해 쉽고 빠르게 사용하는 방법을 사용할 수 있습니다. DDP with torch.distributed.launch 구현 실행 방법 python -m torch.distributed.launch --nproc_per_node 4 multigpu.py 여기서 python -m 옵션은 모듈을 스크립트로 사용할 때 필수적으로 들어가야 할 옵션이라고 합니다. 이는 바로 옆에 나오는 torch.d

생일 2022 [내부링크]

2021년에 생일글을 썼던게 엊그제 같은데 진심 시간 너무 빠르다. 제발 하루 48시간 기원한다... 이번에도 축하해준 많은 친구들과 가족들 덕분에 나의 육체는 논문을 보며 시간을 보냈지만 카톡창은 나의 감정을 따뜻함으로 물들였다. [ 아래는 2021 ] 생일 흠,, 아직 글 쓸게 산더미같이 쌓여있다. 하지만 심심하면서도 칙칙한 글을 쓰는 것으로라도 생일을 축하해... blog.naver.com 써야지 하고 있다가 까먹고 있었는데 현재 시간 2022-10-16 3:58분 영어 자기소개서를 작성하다가 현타가 와서 블로그에 글이나 쓰고 자야겠다. 사진을 찍어서 블로그에 올리다보니 현물 위주의 글을 작성하게 되었지만 축하 연락, 기프티콘, 용돈, 쿠폰 등등을 보내준 많은 가족친구형누님동생들 모두 감사합니다. 글은 받은 순서로 올립니당. 라이언 동생 인형 Previous image Next image 그 이름이 기억이 갑자기 안나는데 새벽이라 그런가? 암튼 라이언 동생이었던거 같다 부드러우

Mixup Augmentation 사용하기 [내부링크]

이전에 Cutmix에 대해서 다루어 본적이 있습니다. 오늘은 그와 유사한 개념인 Mixup에 대해서 구현한 방법을 적어보려구 합니다. 비교적 간단하게 사용할 수 있어서 좋습니다. 다만 제가 사용한 Detection에서는 성능이 굉장히 떨어지는 불상사를 겪었기에 적절한 곳에 잘 사용하는 것이 좋을 것 같습니다. CutMix 나름대로 정리하기 CutMix/CutOut Augumentation 이번 글에서는 최신에 등장한 Augumentation 기법 중 하나인 CutMix... blog.naver.com 또한 이 글에서는 제가 요즘 잘 사용하는 MultiProcessing을 통해 이미지 처리를 하는 것을 다루었습니다. 멀티프로세싱이 안된다면 적절하게 줄이고 사용하면 좋을 것 같습니다. 우선 전체적인 코드를 작성합니다. ( 참고로 자세한 경로는 모두 ...으로 제거하였습니다. 이미지와 annotaion이 존재하는 경로를 적절하게 변경해주면 됩니다 ! ) from glob import gl

Vision Transformer ? [내부링크]

Vision Transformer를 본격적으로 다루기 이전에 한 번 정리를 하기 위해서 작성하는 글입니다. 기본적인 Attention Mechanism에 대해서는 아래의 링크를 참조하였습니다. 1) 어텐션 메커니즘 (Attention Mechanism) 앞서 배운 seq2seq 모델은 **인코더**에서 입력 시퀀스를 컨텍스트 벡터라는 하나의 고정된 크기의 벡터 표현으로 압축하고, **디코더**는 이 컨텍스트 벡터를 통해서 ... wikidocs.net Attention Attention Q : Query, t 시점에 디코더 셀에서의 은닉 K : key, 모든 시점의 인코더 셀의 은닉 상태들 V : Value, 모든 시점의 인코더 셀의 은닉 상태들 위에서 Attention Value란 주어진 Q와 Key의 유사도를 계산하여 각 Value에 연산하여주고, 연산된 Value들을 모두 더해서 리턴하는 값을 의미합니다. 여기서 계산되어지는 Attention Value를 사용해서 각 요소들이

Pytorch Loss Functinon overview [내부링크]

Loss 함수는 기본적으로 모든 모델에 들어가게 됩니다. 특정한 기준으로 실제 값과의 차이를 구하고, 해당 차이를 줄이는 방식으로 딥러닝 모델은 예측값의 범위를 줄여나가게 됩니다. Loss를 계산하는 방식에 따라서 실제 모델과 예측 모델의 차이에 대해 정의할 수 있으며 필요한 부분에 가중치를 두어서 훈련에 더 기여하는 식으로도 조절할 수 있습니다. 또한 출력이 어떻게 생겼는지에 따라 사용할 수 있는 Loss가 다르기 때문에 최대한 많은 Loss를 알아두고 적합한 사용처에 사용하는 것이 중요합니다. Loss는 Hard하게 인덱스 값과 data값을 비교하는 방식이 있으며, 입력 분포와 출력 분포간의 차이를 줄이는 방식도 존재합니다. 모델을 어떻게 설계하고, 값을 줄여나갈지는 모델을 만드는 사람에 전적으로 달려있으며, 사용하는 Loss 마다 필요한 값의 형태도 다르기 때문에 조심해서 사용하여야 합니다. 1. L1 loss 수식 : 파이토치 공식 설명 : 많이 사용되어지는 Loss 중 하나

Pytorch activation Functinon overview [내부링크]

NonLinear는 말그대로 비선형 동작을 하도록 파라미터들에 계산되어지는 값입니다. DeepLearning에서는 모델을 깊게 쌓는 것이 중요한데 이때 각각의 Layer가 non-Linear하지않으면, 반복적으로 쌓는다고 하더라도 한 번의 계산으로 이루어지게 됩니다. 각각의 Layer를 하나의 선형 계산이 이루어지지 않도록 Layer마다 Non-linear를 계산해주어 넘겨주면 각각의 Layer는 다른 결과를 낼 수 있는 파라미터를 가지게 되는 것으로 볼 수 있습니다. 해당 페이지에서는 Torch에 존재하는 Linear들의 그래프를 살펴보고 어떠한 곳에서 이점이 있는지 간략하게 살펴봅니다. 아래 GIF는 많은 Activation Function들의 흐름을 한 눈에 볼 수 있습니다. https://mlfromscratch.com/activation-functions-explained/#/ 1. ELU 그래프 : 등장 이유 : ReLU가 엄청난 성능을 보이는 것은 사실이지만, ReLU는

Overcoming Catastrophic Forgetting in Incremental Object Detection via Elastic Response Distillation [내부링크]

ERD ERS Elastic Response Distillation Elastic Response Selection Catastrophic forgetting Continual Learning Incremental Learning 2022 CVPR CNN을 기반으로 하는 Detection 모델에 Catastrophic forgetting을 방지하기 위한 방법으로 ERD + ERS 라는 새로운 전략을 제시하는 논문입니다. 기존에 사용하던 Distillation방법과 유사하지만 다른 Head의 개념에 맞게 변경해서 사용하였고, All Response 말고 High Confidence response만을 사용해서 좋은 성능을 냈다고 이야기 하고 있습니다. 내용은 간단하게 이해할 정도로 소개합니다. Introduction CL = Continual Learning은 우리 동물들에게는 정말 당연한 일이지만 딥러닝 모델에서는 그렇지 않습니다. 현재까지의 딥러닝은 지속적으로 들어오는 정보를 처리

DyTox: Transformers for Continual Learning with DYnamic TOken eXpansion [내부링크]

DyTox Transformer Continual Incremental Dynamic Rehearsal CVPR 2022 해당 논문은 Continual Learning을 Transformer에서 다루며, Rehearsal + Dynamic한 방법을 사용하고 있습니다. Method 및 사용법에 대해서만 살펴봅니다. Introduction CL = IL 에서 계속적으로 사용되는 단어인 Catastropic Forgetting을 Transformer를 사용해서 새결하는 방법입니다. 이전의 정보를 잃어버리지 않는 rigidity를 강조하면서도 새로운 데이터에서도 완벽하게 반응하는 Plasticity 를 잘 적용하는 방법은 계속해서 연구되어지는 종목중에 하나입니다. 해당 논문에서는 Dynamic하게 새로운 데이터가 들어옴에 따라 구조를 늘리는 형태로 New Data에 반응하고, 동시에 이전 데이터 중의 일부분을 사용해 Rehearsal Dataset인 Exemplar를 사용해서 Old Dat

Continual Learning with Lifelong Vision Transformer [내부링크]

LVT Continual Learning CL IL Transformer External Key Bias inter-task attention dual Classifier Catastrophic forgetting 대부분의 모델들이 VIT 구조를 기반으로해서 만들었다는 것을 확 느낄 수 있습니다. 여기서도 Transformer Block에 변화를 주고, Previous Data에 관련이 있도록 만들었습니다. Methodology 3.1 Problem Setup T : Task X, Y 로 이루어진 i.i.d. 독립 이상 분포 D X', Y' in memory ( Rehearsal 데이터 ) -> 이전에 학습을 완료한 데이터들 해당 모델은 한번 에 하나의 Task를 학습하기 때문에 동시에 모든 클래스를 최적화 한다는 것은 불가능하지만, 제한된 메모리에 이전의 Task에 대한 정보를 저장하는 형태로 이전에 대한 정보를 잊지 않는 훈련을 진행한다고 합니다. 3.2 LifeLong Visi

Knowledge Distillation [내부링크]

KD Knowledge DIstillation 지식증류 경험 전달 entropy crossEntropy KL-Divergence 사전 정보 최근 Incremental Learning에 대한 공부를 위해서 그에 근간이 되어지는 Knowledge Distillation을 공부하였습니다. 간단하게 개념을 정리해보고, 직접 코드를 사용해서 실험한 결과를 공유합니다. 가장 유명한 코드 모음집이 있기는 한데, 파이토치 0.3 버전으로 만들어져서 사용하기도 힘들고, 실험을 진행하지를 못해서 직접 코드를 작성해보았습니다. 기본적인 개념은 간단한데, 딥러닝에서는 모델이 클수록, 깊고 넓을 수록 더 많은 파라미터를 통해 많은 지식 정보를 얻을 수 있다는 장점이 존재합니다. 하지만, 이렇게 큰 지식을 학습한 모델일수록 사용하려면 좋은 하드웨어 및 좋은 디바이스가 필요하기 때문에 이를 해결하고자 등장하게 되었습니다. 큰 모델에서 학습을 진행하고 여기서 얻은 지식의 일부를 작은 모델에 전달해주면서 작은 모

Yolov5 성능분석-Normalization [내부링크]

Yolov5 Performance Normalization 정규화기법 이전에 회사에서 조사했던 자료들이 썩어가고 있길래, 블로그에 나마 올려봅니다. 시간을 아끼기위해 최대한 정제하지 않고 자료를 담을 생각입니다. 저는 Yolov5 6.1v을 사용하였으며, 무조건 모든 데이터에서 성능이 달라진다는 보장이 없기에 읽어보고 적용해도 괜찮겠다 싶으신 분들 위주로 사용하시면 좋을 것 같습니다. ( 뻘짓을 줄여드립니다. ) 개요 정규화 기법 중 가장 유명한 Batch Normalization은 데이터를 불러오고 훈련을 진행함에 있어 반복적으로 작업을 진행하는 와중에 발생하는 문제인 Co-Variance의 Shift 문제를 해결하여, 모델 훈련의 성능을 높이게 됩니다. 다른 Normalization 기법인 Layer Normalization ( RNN 에서 유명 ), Group Normalizaiton( Video Classifciation에서 유명 )을 적용해보고, 모델의 성능을 분석해봅니다.

Learning without Forgetting [내부링크]

Incremental Learning Contionous Learning 지속 학습 TransferLearning Implementation 코드 구현 논문 요약 설명 KD에 이어서 Incremental Learning 중 하나인 Learning Without Forgetting에 대해서 코드를 작성해보고 리뷰하려고 합니다. 제목에서도 알 수 있듯이 잊어버림없이 계속해서 학습하는 것을 말합니다. 자세한 설명은 넘어가도록 하고, 아래 블로그에서 간략적인 내용을 확인할 수 있습니다. 그래도 코드를 구현하려면 논문을 읽어보는 것을 추천합니다. ( Introduction에서 Main Idea와 3 챕터의 이론 설명에서 괜찮은 설명을 하고 있습니다. ) [PAML 2017] Learning Without Forgetting (LwF) 핵심 리뷰 내용 요약 LwF(Learning-Without-Forgetting) 방식의 Incremental Learning 방법론을 제안합니다. Cross E

ICaRL [내부링크]

Icremental Classifier and Rpresentation Learning Incremental Learning Continual Learning IL CL 저는 이번에 Detection모델에서 Incremental Learning을 적용하는 일을 준비하고 있습니다. 그 전에 있어서 한 번도 IL = CL 에 대한 내용을 들어본적이 없기에 빠르게 훑어보고 Transformer 또는 Detection 모델에서 적용하는 방법을 알아보려고 했는데, 도대체가 무슨말인지 하나도 몰라서 중요해보이는 논문들은 구현부까지는 천천히 읽어보고 정리해보았습니다. Introduction ICaRL은 Incremental Classifier를 통해 언제 데이터가 들어오든 학습이 가능해야한다고 말합니다. 이는 기본적으로 대부분의 IL에서는 필요한 기술입니다. 또한 IL이 가져야 할 3가지 조건을 만족한다고 합니다. 다른 시간에 발생하는 데이터를 항상 학습할 수 있어야 합니다. 이전까지 관측되었던

Optimization [내부링크]

Optimization Optimum sgd Adam optimizer pytorch 나름데로 이런저런 모델을 사용하며, 상황에 맞는 최적화 기법을 사용하다가 점점 늘어나는 양에 점점이해가 되지않아서 한 번에 정리해두려고 합니다. 최적화 기법에 대해 정리하였으며 제가 궁금한 것 위주입니다. 최적화란? 주어진 함수 값에 대해 최대 or 최소화를 진행하는 문제. 우리는 제한적인 함수의 조건을 만족하면서 목적함수를 최대화 시키는 최적의 파라미터를 찾는 것이 목표이다. Convex Optimization 을 가장 많이 사용하게 된다. ( 많은 문제들이 Convex 하기도 하고, Convex하지 않아도 값을 찾는데 많은 도움이 되기 때문이다. 경사하강법 하강하는 방향과 크기, 한 번에 얼마나 움직일지 결정하고 해당 방향으로 이동한다. 특정 문제의 Convex 함수를 구해 기울기를 측정한다. Line search 를 한다. ( Step size인 T를 구하는 과정 ) → 1차원 gradient

Auto Encoder[오토인코더] [내부링크]

오토인코더 AE 파이토치 nn.Module 서론 이전까지의 모델은 전부 라벨이 된 데이터를 가지고 진행하였습니다. 이러한 라벨 위주의 데이터들은 훈련하기 쉽지만, 저작권 또는 모두 라벨링하는 작업이 추가로 들어서 새로운 데이터들을 계속해서 학습해야하는 경우에는 쉽지 않다는 문제가 발생합니다. 이러한 문제를 해결하기 위해 Auto Encoder를 사용합니다. AE는 신기하게도 입력과 출력에 동일한 데이터를 사용합니다. 입력을 넣어 인코더라고 불리는 연산들을 거쳐 아주 미세한 차원으로 압축한 뒤 디코더라고 불리는 연산들을 거쳐 다시 복원되어지는데 복원된 값과 입력 값을 비교해서 어느정도의 차이를 보이는지 학습합니다. 위에서 미세한 차원으로 압축된는 것을 다른 말로 잠재 변수라고 합니다. 잠재 변수에 이미지의 가장 강조되는 특징을 가지도록 한 후 이를 이용해 복원하는 것을 말하게 됩니다. 여기서 미세한 차원으로의 압축은 우리가 흔히 알고있는 파일 압축과는 다릅니다. 신경망을 거치면서, 이

Deformable DETR [내부링크]

Defromable DETR paper 논문정리 이해를 위해 중요한 부분을 위주로 글을 나열하였습니다. 혹시나 틀린 부분이 있다면 조언 부탁드립니다 ! Summary 개인 피셜 DETR을 Deformable한 Image Feature를 통해 Attention 작업을 진행함으로써, 연산량을 줄이고 빠른 훈련이 가능하도록 만들었습니다. 연산량이 줄어들어 Multi-Scale 정보를 Resnet으로부터 가져올 수 있었으며, 다양한 SIze에서의 이미지 피쳐는 모델이 작은 객체에 대해서도 준수한 성능을 낼 수 있게끔 만들어주었습니다. Multi-Scale 정보를 얻음으로써 생기는 각 Scale에 대한 정보를 모델이 파악할 수 있게끔 Scale Embedding 정보가 추가되었습니다. Decoder 단에서, 예측 Reference Point를 생성하기위해 학습가능한 Linear projection을 사용합니다. 여기서 나오는 예측 prediction은 BBOX의 Centor를 가르키게 되고,

Convolution Masking [내부링크]

Convolution Masking Dropout Weight Challenge 궁금점 이번에 다뤄볼 것은 Conv으로 구성된 DNN을 만들 때, 흔히 사용되는 Dropout과 유사한 작업을 하는 Mask를 만들어보려고 합니다. Conv 또는 업데이트 되어지는 다른 학습가능한 파라미터들을 내가 조절할 수 있다면 필요시에 노드를 컨트롤 할 수 있지 않을까? 라는 생각에 만들어보게 되었습니다. 실제로 Dropout에서 코드를 변경해서 만들어보려고 했으나, Dropout은 베르누이 확률로 각각의 노드에 대해 독립적으로 확률을 매기기 때문에 따로 수정할 수 있는 방법이 없었습니다. 따라서 기존에 실험을 하던 코드에서 몇 개를 변경해서 Masking을 적용해 보았습니다. 실제로 코드를 적용해서 Cifar-10을 통해 30회를 훈련했을 때, Dropout과 유사한 성능을 보이는 것을 볼 수 있었습니다. 이는 어디까지나 작은 모델과 작은 데이터 셋을 통해 실험한 것이어서 확실한 결과는 아니지만

Einops, 차원이동 라이브러리 [내부링크]

Einops permutation reshape view 차원변환 차원생성 차원축소 텐서변환 오늘은 급부상하는 차원 변환 라이브러리인 Einops의 사용법에 대해 알아보고 제가 사용할 수 있을 정도의 난이도로 글을 정리하였습니다. 비교적으로 간단하고, 직관적으로 차원을 관리할 수 있어 많은 차원변환에서도 명시적이게 나타낼 수 있다는 것이 einops의 장점으로 생각됩니다. 또한 연산도, 파이토치 또는 넘파이에서 제공되어지는 차원 변환 매서드보다 빠르다는 이야기가 있어 차원 이동시에 사용하면 속도면에서도 이득을 볼 수 있으리라 생각됩니다. 우선 Einops의 동작은 엄청 유명한 라이브러리 및 파이프라인은 지원하고 있습니다. 저는 파이토치 + 넘파이를 많이 사용하는데 이 둘은 물론 Tensorflow도 지원한다고 합니다. 간단하게 알아볼 수 있는 예시들을 통해 추후에 사용하고, 모델의 구조를 변경하는 것에 도움을 얻으려고 합니다. Einops는 3가지로 구분되어지는데 아래와 같이 나누어

CV & About me [내부링크]

블로그에 나를 소개하는 글이 없는 것 같기도하고, 앞으로 대학원 생활을 하면서 생기는 일도 이전에 했던 활동에 추가해서 적으면 좋을 것 같아서 기존에 노션에 작성하던 글을 가져오게 되었습니다. 또한 이전에 학부시절의 CV를 궁금해하는 사람이 많았어서, 참고 정도의 도움은 될 수 있을 것 같습니다. 대학원 컨텍을 위해 사용한 정식 영어 CV는 글 아래에 링크 해두었습니다. 부경대학교 학사 졸업 ㅋ Info. name : junsu kim e-mail : [email protected] / [email protected] old : 27 blog : blog.naver.com/jjunsss blog 2 : junsukim97.github.io Education 2022.02. 부경대학교 정보통신공학과 졸업(2016-2022) 인공지능 통신 네트워크 연구실 학부연구생 ( 2019 - 2021 ) Prof. Hoon Lee 부경대학교 정보전산원 인턴 → 과 홈페이지 제작 ( 공업

파이토치 모델 Save & Load [내부링크]

Save Load 직렬화 역직렬화 Torch 모델 사용법 파이토치에서는 모델을 구성하고나서 훈련을 진행합니다. 하지만 모델을 새롭게 사용할 때마다 훈련을 진행하기에는 너무나 많은 자원이 소모됩니다. 따라서 저희는 모델의 파라미터를 저장 & 불러오기 또는 모델 자체를 저장 & 불러오기 할 수 있습니다. 이러한 개념에 대해서 이해하기 위해 우선 직렬화, 역직렬화에 대해 알아봅니다. 직렬화 & 역직렬화 간단합니다. 기존에 어떤 형태를 가지는 데이터들은 전부 메모리에 공간을 차지하면서 형태를 유지하게 되는데 우리는 이러한 메모리에 존재하는 값까지 모델을 옮길 때 이동시키고 싶습니다. 이 때 필요한 방법이 특정 파일에 모든 데이터에 대한 내용을 넣어서 옮기는 것인데 이를 직렬화라고 합니다. 직렬화에는 몇 가지 방법이 존재합니다. CSV, XML, JSON 직렬화 DL에서 데이터를 다룰 때 많이 볼 수 있는 방법입니다. 파일에 어떤 데이터들의 모든 메타 정보가 포함되어 있어서, 간단하게 사용할

FashionMNIST DNN [내부링크]

MNIST DNN 과적합 드랍아웃 Overfitting Dropout Augmentation Underfitting FashionMNIST 이번 글에서는 Fashion MNIST를 통해 알아본 DNN과 Overfittng, underfittng 에 대해 알아보고, 이를 해결하는 방법에 대해서도 알아봅니다. 또한 DNN에서 흔히 사용하는 매소드에 대해 궁금한 점에 대해서도 정리하였습니다. 해당 관련해서는 글을 파란색으로 적어두었습니다. 혹시나 틀리거나 다른 의견이 있으시다면 알려주신다면 정정토록 하겠습니다 ! 해당 글은 전체적으로 "3분 파이토치"라는 책의 순서를 따르되 제가 이해하고, 공부한 내용으로 정리하였습니다. 1. 과적합과 드롭아웃 오버피팅 이란 ? 데이터가 과도하게 훈련 모델에 치중되어 실제로 사용해야하는 데이터에서는 좋은 성능을 보이지 못하는 것을 말합니다. 이는 일반화를 잘 하지 못하는 것이라고도 말할 수 있습니다. ( 일반화 : 어떠한 데이터 구조의 특징만을 잘 뽑아

모니터등 리뷰 [내부링크]

Base-us 모니터 등 베이스어스 모니터 조명 모니터 LED LED등 추천 정말 오랜만에 진행하는 간단 장비 리뷰 이번에는 모니터 위에 달아서 모니터 화면을 더 환하게 만들고, 모니터 앞의 책상을 밝혀주는 모니터 등에 대해 적어보려 합니다. 빠르고 간결하게 사진 위주로 진행합니다 ~ ! 우선 쿠팡에서 로켓배송 시켰는데 역시나 하루만에 온다. 이전에 제품이 항상 품절이라서 구매하지를 못했는데 이번에 재고가 있어서 바로 구매를 진행했다. 포장은 아주 야무지게 과대 포장으로 오고, 위의 박스처럼 제품만 덜렁 있다. 열어보면, 간단하게 상품설명서, C 타입 전원, 제품 이렇게 들어있는데 심플해서 보기 좋습니다. 중국 제품중에서 유일하게 믿고 사는 베이스어스.. 이때까지 많이 샀는데 항상 실패한 적은 없었어서 계속 사게 되는 것 같습니다. 요런 스티커도 줌 ㅋ 전부 뜯으면 이렇게 제품이 들어있습니다. 제품도 정말 튼튼하고, 검정색으로 심플하니 보기 좋습니다. 일단 딱 만져보면 베이스어스 제

NVIDIA Ambassador [내부링크]

엔비디아 NVIDIA DLI 앰버서더 Ambassador AI Jetson 대외활동 나 이번에는 내가 기존에도 올린적이 있는 엔비디아의 AI 엠버서더에 대한 글을 써보려고 합니다. 비록 취업관련은 아니지만, 대외활동으로써 충분히 메리트가 있다고 생각되어지며 추 후에 자소서에도 이쁘게 녹일 수 있지 않을까 라고 생각합니다. 이전에 제가 썼던 글은 그냥 단순히 소개용으로 작성했기 때문에 이번에는 실제로 면접을 보면서 있었던 질문 내용에 대해 작성하도록 하겠습니다. 아래는 이전에 작성했던 내용입니다. NVIDIA DLI Ambassador 엔비디아 엠버서더 젯슨 엠버서더 Jetson Nano Jetson Xavier 1월까지 KT Aivle에서 공부하다가 나... blog.naver.com """ 언제든 인터뷰의 길은 열려있습니다 ! (중소기업, 스타트업 상관없습니당) 취업을 해서 자랑하고 싶다 하시는 분들도 가능합니다 !! 후배들을 위해 너그러이 경험을 공유해주신다면 정말 감사드립니다

지역인재 7급 공무원 [내부링크]

공무원 지역인재 7급 공무원 방송통신직렬 취뽀 인터뷰 직장인 인터뷰 면접 인터뷰 친구 여섯 번째 글은 지역인재를 통해 7급 공무원에 합격한 인터뷰이 입니다. 이전부터 제가 나온 학과는 공무원 + 공기업에 대한 관심이 높았고, 목표로 삼는 친구들이 많았는데 제 주변에서 처음으로 공무원에 합격한 친구입니다. 후배들 사이에서도 많은 관심을 가지는 지역인재인터라 추가적인 몇몇 질문을 더했습니다. 무작정 요청했는데도 진심으로 정말 잘 써준 친구야 고맙다..( 너무 잘 써줘서 글 하나도 안고침 ) """ 언제든 인터뷰의 길은 열려있습니다 ! (중소기업, 스타트업 상관없습니당) 취업을 해서 자랑하고 싶다 하시는 분들도 가능합니다 !! 후배들을 위해 너그러이 경험을 공유해주신다면 정말 감사드립니다 !!! """ 지역인재 7급 공무원 합격수기 1. 간단한 자기 소개(취업한 기업 등) 및 취업 성공 당시 스펙 안녕하세요. 2022년 지역인재 7급 방송통신직렬에 합격한 이원범이라고 합니다. 취업 성공

롯데정보통신 [내부링크]

롯데정보통신 롯데 클라우드 통신, IT 취뽀 인터뷰 직장인 인터뷰 면접 인터뷰 친구 일곱 번째 글은 이전에 한 번 인터뷰 했지만 이직에 성공한 인터뷰이 입니다. 자세한 글들은 이전에 적은 것과 동일하기 때문에 역량과 인성에 대한 질문이 무엇무엇 있었는지 질문하였고, 질문에 대해서만 이야기 해주었습니다. 이번에는 어떤관점으로 면접자들이 질문하는지에 초점을 맞추어 읽는게 도움이 될 것 같습니다 !! """ 언제든 인터뷰의 길은 열려있습니다 ! (중소기업, 스타트업 상관없습니당) 취업을 해서 자랑하고 싶다 하시는 분들도 가능합니다 !! 후배들을 위해 너그러이 경험을 공유해주신다면 정말 감사드립니다 !!! """ 역량 관련 질문 1-0. 식사는 하셨나요? 간단한 자기소개 부탁드립니다. 1-1. 클라우드 직무에서 중요한 기술베이스 세 가지가 무엇인가요? 1-2. 그 세가지를 어떤 식으로 공부했나요? 1-3. MSA에 대해서 알고 있나요? 아는 만큼 설명해 주세요. 1-4. 쿠버네티스를 스터디

낭만 [내부링크]

오랜만에 적어보는 글 아직 적다만 글은 쌓여만 가지만 이제는 블로그에 주절거릴 시간이 없다는게 정말 아쉽다 ( 어떻게든 짜면 있지만 ㅋ ) 나는 요즘 대학교 연구실에서 인턴을 하고 있다. 아무런 연고도 없는 울산에 방을 잡고 산지 어느덧 2주가 되어가는데 다른 건 다 적응해도 이 재미없는 울산과 유니스트의 핵노잼 길거리는 도무지 살아갈 맛을 주지않는다.. 그렇게 노잼 생활을 이어가다가 블로그를 적게 된 재미난 일이 있었는데 바로 중딩 친구들. 저번 주 주말에 몰래 부산에 내려가서 놀고 있었는데 문득 몇 년만에 전화온 친구 둘이가 갑작스레 시간되냐고 물었다. ( 낭만있는 놈들.. ) 나는 반가운 마음에 새벽 1시였음에도 불구하고, 가능하다고 하였고 친구들은 지들 몸뚱아리에 맞지도 않는 스파크를 타고 20분만에 주례에서 화명동까지 날아왔다 ㅋㅋ 진심 귀여운 스파크 울산에 간지 일주일밖에 안됐는데 이 때 이 친구들을 보니 너무 반가워서 들떴다 ㅋㅋ 나도 헐레벌떡 뛰어들어갔는데 ㅋㅋ 이건

KT AIVLE [내부링크]

KT AIVLE KT AI School 국비교육 대외활동 나 여덜 번째 글은 이전에 했었던 KT AIVLE 이라는 교육에 대해 적어보려고 합니다. 제가 작년 11월 경에 지원했었고, 실제로 2달정도 수업을 듣다가 사뭇 다른 지향점때문에 나오게는 되었지만 충분히 괜찮은 커리큘럼과 매니저분들이 있으셨기에 코딩을 배우는 입장에서는 최고라고 생각됩니다. 회사 인터뷰는 아니지만, 코딩이 대세가 되어가는 지금 많은 사람들이 국비교육 또는 기초 교육에 대한 관심이 많은 것 같아서 제가 들어갔을 때 썼던 합격과정에 대해 적어보려 합니다. 상대적으로 취업하는 것보다는 많은 사람을 뽑기에 들어가기 쉽다고 볼 수 있을 것 같습니다. 모든 글은 제가 1기였던 관계로 1기 기준으로 작성되었습니다. 현재는 어떻게 된지 알 수 없어요 ! """ 언제든 인터뷰의 길은 열려있습니다 ! (중소기업, 스타트업 상관없습니당) 취업을 해서 자랑하고 싶다 하시는 분들도 가능합니다 !! 후배들을 위해 너그러이 경험을 공유해

금융감독원 [내부링크]

금융감독원 금감원 IT 계열 직장인 인터뷰 면접 인터뷰 친구 세 번째 글은 금융감독원(IT 직렬)에 근무하게 된 인터뷰이 입니다. 첫 금융권으로 취업의 인터뷰이이고, 이전부터 금융권을 준비하시고 이룬 친구입니다. 혹시나 준비하고 계시거나, 다른 사람의 썰을 들어보고 싶으시다면 읽어보시기를 추천드립니다 :) 또한 언제든 인터뷰의 길은 열려있습니다 ! 취업을 해서 자랑하고 싶다 !!! 하시는 분들도 가능합니다 ! 후배들을 위해 너그러이 경험을 공유해주신다면 정말 감사드립니다 !! 1. 간단한 자기소개(취업한 기업 등) 및 현재 스펙 현재 금융감독원 IT 직렬, 우리카드 디지털, IBK기업은행 디지털 면접에서 탈락. 현재 스펙 - 자격증 : 정보처리기사, 한국사 1급, 컴활, 토익 745점 - 논문 : 국내 학회에 논문 2편, 저널 논문 1편 - 공모전 : 부산동아리 인공지능 공모전 입상, 부경 창업경진대회 수상, 부울경 핀테크 창의아이디어 공모전 , 부울경 논문경진대회 수상, 공공빅데이

경성테크놀러지(CEO) [내부링크]

(주)경성테크놀러지 KST 스타트업 IT 부산 IT 대표님 인터뷰 본인 인턴 회사 대표님 네 번째 글은 (주) 경성테크놀러지 (KST)를 운영하고 계시는 대표님 인터뷰 입니다. 홍순기 KST 대표님은 18년에 창업하여 현재 부산에서 잘나가는 스타트업으로 부산시장에게도 뽑힐만큼 현재 성공적으로 운영하고 계시는 대표님의 운영 마인드를 알고 싶어 인터뷰 하였고, 해당 글을 공유합니다 c 입사한 것이 아닌 대표님을 인터뷰 한 것이므로 대표님에 맞게 질문을 변경하였습니다. 부산에서 주로 창업, 20대에 가졌으면 하는 마음가짐등에 대해서 말해주십니다. 언제든 인터뷰의 길은 열려있습니다 ! (중소기업, 스타트업 상관없습니당) 취업을 해서 자랑하고 싶다 하시는 분들도 가능합니다 !! 후배들을 위해 너그러이 경험을 공유해주신다면 정말 감사드립니다 !!! 1.창업가의 시선으로 감명 깊게 읽은 책이 있으시다면 알려주실 수 있으실까요? 이유도 간략하게 적어주신다면 도움이 될 것 같습니다 c "아직도 가야

현대자동차 [내부링크]

현대자동차 현대차 품질관리 취뽀 인터뷰 직장인 인터뷰 면접 인터뷰 친구 다섯 번째 글은 현대자동차(품질관리)에 취업을 성공한 인터뷰이 입니다. IT 계열은 아니지만, 이야기를 들어보고 싶어서 요청하였고 흔쾌히 적어주었지만 간단간단하게 필요한 내용만 보내주었습니다 ㅋㅋ 혹시나 현대차쪽으로 생각하고 있다면, 읽어보면 도움은 안될꺼같고 그냥 그렇구나 하는 정도로 읽어보면 좋을 것 같습니다 언제든 인터뷰의 길은 열려있습니다 ! (중소기업, 스타트업 상관없습니당) 취업을 해서 자랑하고 싶다 하시는 분들도 가능합니다 !! 후배들을 위해 너그러이 경험을 공유해주신다면 정말 감사드립니다 !!! 1. 간단한 자기소개(취업한 기업 등) 및 현재 스펙 안녕하세요 부산대 전자공학과에 졸업하였고 2022년도 상반기 현대자동차 품질관리 부서에 합격하였습니다. 아마 가서 부서내에서도 자동차 전반적인 생산과정의 품질개선과 관리를 담당하는 곳으로 배치받으리라 예상합니다. 2. 취업하기 위한 학습 방법 원래는 공기

솔플 제주도 1 [내부링크]

제주도 삼양해수욕장 삼양 감수탕 흑섬 제주시 무지개맥주 혼자 떠난 제주도 여행의 첫번 째 글 아마도 3 ~ 4개의 글을 적어야 할텐데 안쓸수록 귀찮아지니까 얼른얼른 적어두고 넘겨야겠다 5일을 다녀왔는데 1 - 2 일차까지는 친구들을 만났기 떄문에 사실상 혼자는 아니였다. 어쨌든 블로그 올릴거라고 사진을 어마무시하게 많이 찍었기에 안올리면 아쉬우니까 사진위주로 고고씽 나의 여행은 처음 부터 우당탕탕이었다.. Previous image Next image 나는 11시 출발인줄 알고 택시타고 우당탕탕 챙겨서 왔는데 대한항공에 티켓을 내미니까 제주도에서 부산으로 오는 거였다. 결과적으로 제주도에 가지도 못했는데 오는 비행기만 두 개를 끊은 것이다. ㅁㅊ넘 하지만 역시 대한항공 승무원분이 티켓을 보시고 엄청나게 빠른 속도로 취소와 동시에 다른 티켓을 새롭게 끊어주시는 덕분에 1시 행 비행기를 초스피드로 예약할 수 있었다. 하지만 11시 부터 1 시까지의 몫은 오로지 스스로 채워야 했다. 그래

SK 쉴더스 [내부링크]

주변인 인터뷰 글 인터뷰 SK 쉴더스 내 친구 블로그에 올릴 새로운 컨텐츠로 내 디스코드에 올리던 주변인들의 기업 면접 인터뷰를 올리려고 합니다. 그렇게 많이 도움되지는 않겠지만, 그냥 어느기업에 들어갈 때 참고할 수 있을정도 또는 미리 맛보는 정도의 글이 되었으면 하는 바람입니다. 기존에는 운영하는 디스코드 채널에서만 올리고 있었지만, 혹시나 제 블로그를 찾아주는 다양한 분들이 읽어보고 도움이 될 수 있으면 좋을 것 같아서 공유하게 되었습니다. 읽고 자신의 이야기도 쓰고싶다 하시는 분이 있다면 저한테 연락주세요 !! 공유합시당 :) ※ 글은 개인정보를 파악할 수 있는 정보는 미리 제가 지우고 올릴 예정입니다. 인터뷰는 올해 초부터 시작했기 때문에 인터뷰이가 다른 회사로 이직했을 수 있습니다. ※ 말투는 인터뷰이가 써준데로 작성합니다. ※ 제 주변 친구들이 IT 위주로 진학하기 때문에 IT가 많을 수 있습니다.= 첫 인터뷰이의 직장은 SK 쉴더스 입니다. 1. 본인 소개 : SK텔레

한전 KDN [내부링크]

주변인 인터뷰 글 인터뷰 한전 KDN 통신 직렬 친구 두 번째 글은 한전KDN(통신 직렬)에 근무하게 된 인터뷰이입니다. 첫 글보다는 글이 작지만 간략한 스펙과 본인이 겪었던 경험을 솔직하게 공유하고 있기에 개인적인 정보는 제한하였습니다. 또한 언제든 인터뷰의 길은 열려있습니다 ! 취업을 해서 자랑하고 싶다 !!! 하시는 분들도 가능합니다 ! 후배들을 위해 너그러이 공유 요청드립니다 :) 1. 간단한 자기소개(취업한 기업 등) 및 현재 스펙 - 스펙 : 무선설비기사,오픽IM2 - 정보통신계열 연구실 생활 - 관련 수상 경력 3회 2. 구직을 위한 공부 공기업 준비는 일단 면접은 붙으면 생각해 보고 NCS랑 전공만 공부하자라고 생각해서 두 개부터 시작했습니다. 먼저 NCS의 경우 모듈형 피셋형이 있는데 그때 당시에 어떤 기업에 꼭 들어가야겠다 이런 게 있는게 아니였어서 둘 다 공부했습니다 모듈형은 정리 잘 된 요약본을 한번 쭉 읽어보고 간단하지만 헷갈리겠다 싶은 것만 표시해두고 문제

CutMix 나름대로 정리하기 [내부링크]

CutMix/CutOut Augumentation Facebook Research. Naver-Clova Research 이번 글에서는 최신에 등장한 Augumentation 기법 중 하나인 CutMix를 작성해보도록 한다. Facebook 리서치 팀에서 고안하였고, Naver와 Clova 리서치가 합동하여 실질적인 결과의 논문을 나타내었고 나도 또한 네이버 리서치분들의 논문을 참고하였다. 다만 자세하게는 나의 역량이 딸려 적지는 못하고 어떤 기법이고 어떻게 구현하는지 결과는 어떻게 되는지에 대해 간략하게나마 정리하여 본다. 1. 등장이유 CNN에서 Dropout은 Classifiers의 성능을 강화시켜주는 요소로 사용되어져 왔다. 지역적인 Dropout은 이미지를 훈련하는 과정중에 정보를 싣고 있는 픽셀을 제거하고 검은색 픽셀 혹은 임의의 노이즈 패치를 할당하여 이미지를 교육하게 된다. 하지만 이런 이미지학습 방법은 정보 손실과 비효율성으로 이어지기 때문에 적합하지 않다고 한다.

KST STUDY 파이썬 기초 문제 [내부링크]

(주)경성테크놀러지 스터디 인턴 파이썬 이미지 처리 배열 저는 부산시의 스타트업인 경성테크놀러지에서 인턴생활을 하고 있었고, 5월부터 회사내의 사람들과 인공지능 모델을 구현하고, 사용해보는 스터디를 진행하였습니다. 사람들이 만들어 둔 Yolov5, Deeplabv3, Detectron2와 같은 친구들은 사용하기 쉽지만 동작원리도 모르고 사용하기 쉽습니다. 그래서 논문 리뷰와 더불어서 코드 구현을 통한 검출 능력 향상까지를 도 맡아서 진행 중이었는데 팀원 분들의 이미지 처리에 대한 기본 코드 능력을 우선적으로 향상하는게 중요함을 깨닳았습다. 그래서 저도 파이썬 기초에대해 복습하고, 응용해서 아이디어를 짜내볼까해서 매일같이 문제 3개를 다양한 주제에서 제출하고 있는데 모아두면 의미가 있을 것 같아서 적어두게 되었습니다. 문제는 제가 인턴을 종료할 때까지 계속해서 제출할 것이며, 주제는 제한이 없고, 기본적으로 업무에 도움이 될만한 내용들만 기준으로 제출합니다. 또한, 제 코드가 완벽한

Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation [내부링크]

Deeplabv3+ Semantic Segmentation Google Semantic Segmentation 중 유명한 모델인 Deeplabv3+에 대해 간단하게 정리하였습니다. 모든 내용을 상세하게 정리하지는 않았으며, 인턴들의 발표를 참고한 내용도 존재합니다. 필요한 내용만 간단하게 진행합니다. Summary 딥랩은 V3+이전까지의 모든 모델을 업데이트한 느낌으로 변경됩니다. 최종 버전인 V3+에는 이전에 나왔던 핵심 기술들이 대부분 포함되어 있거나, 약간 수정되어 있습니다. 따라서 이해하려면 이전 논문을 개략적으로는 알고 있어야 전체적인 부분을 이해할 수 있습니다. Atrous Convolution, ASPP, SPP 등 유사한 개념이 나오는데 대부분 이미지의 Feature를 Multi-Scale로 받아서 조금 더 확실한 처리를 위함입니다. 또한 FC Layer의 고정성에 따른 입력 이미지의 한계를 줄여줌으로써 더욱 다양한 이미지 처리가 가능해져 사전 전처리 작업이 제거되었습

경성테크놀러지 [내부링크]

제주도에서 작성하는 나의 인턴 생활기. (식중독으로 뒤질뻔해서 오늘까지 썼다..) 돌아가면 할게 너무 많기에 친구 집에서 혼자 노트북을 켜고 글을 쓰면서 인턴 하면서 있었던 일들을 사진 위주로 작성해보려고 한다 ! 맨날 밥먹듯이 주임 행님한테 한 말이 있었는데 인터넷에 우리 회사를 치면 내 블로그가 뜨고, 회사 사람들 사진이 나오게 만들거라고 장난삼아 말했는데 가능하려나 모르겠다. ㅋㅋㅋ 글에서 가능한 많이 회사와 관련된 단어들을 언급하면 되지 않을까?ㅋㅋㅋ 아래는 우리 회사의 키워드이다. "KST" "경성테크놀러지" "부산 IT 스타트업" "사회 복지 스타트업" KST와 NVIDIA를 대표한 발표 나는 엔비디아에서 JETSON AI 앰버서더를 맡고 있다. 여기서는 연 중 1회이상은 발표를 해아지만 앰버서더 자격이 유지된다. 나는 그런 욕심은 없었지만, 우리학교에서 발표를 하고 싶은 욕심은 많았다. 이를 눈치채신 대표님이 흔쾌히 다녀오시라며 인턴 1주일차에 보내주셨고, 나는 보답으로

YOLOv5 Hyperparameters & Evolve & Genetic Algorithm [내부링크]

Yolov5 Hyps Evolve Genetic Algorithm Yolov5 Evolution GA YOLOv5에는 대략 25가지가 넘는 하이퍼 파라미터가 존재합니다. 여기서 사용하는 하이퍼 파라미터 수치들은 기존에 모델의 수치를 바꾼다는 의미를 가지는 하이퍼 파라미터와는 다르게, 증강 & warm-up & loss 등 다양한 수치를 변경할 수 있도록 만들어두었습니다. 제가 여러번의 실험을 진행하면서 모델의 변화 vs 하이퍼 파라미터의 변화에 따른 성능 결과의 차이를 비교해본 결과 Yolov5s -> Yolov5x 등으로 바꾸는 것보다 하이퍼 파라미터를 모델에 적합하게 변화하는 것이 성능에 더 큰 변화를 일으킨다는 것을 알 수 있었습니다. 그렇다면 하이퍼 파라미터의 종류에는 무엇이 있는지 부터 살펴봅니다. YOLOv5 하이퍼 파라미터 lr0: 0.01 # initial learning rate (SGD=1E-2, Adam=1E-3) lrf: 0.1 # final OneCycleLR

Test-Time Augmentation 사용 방법 [내부링크]

TTA with YOLOv5 ttach Custom TTA 이전에 소개했던 TTA를 실제로 사용하는 방법에 대해서 알아보려고 합니다. 논문을 소개한 글은 아래 링크로 이동하면 볼 수 있습니다. 아래 링크에서는 TTA의 성능과 TTA를 통해 어떻게 검출 성능을 높일 수 있게 되는지에 대해 설명합니다. Better Aggregation in Test-Time Augmentation TTA Test-Time Augmentation Data Augmentation Real-Time Summary 기존에 추론환경에서 사용하... blog.naver.com 위의 논문에서와 동일하게 TTA는 말 그대로 Test 단에서 사용하는 Augmentation(Aug) 입니다. 훈련 중에서도 Aug를 넣긴하는데, 이 친구는 추론 단계에서 한다고 보면 됩니다. 정확히는 모델을 통해 하나의 결과를 유추하고 나면 해당 결과에 대한 이미지를 TTA를 통해 다양하게 변화시키고, 각각의 이미지에 결과를 추론하여 가장

YOLOv5 & Resolution [내부링크]

Yolov5 Resolution 해상도 Image 처리 YOLOv5는 이미지를 가지고 훈련을 진행합니다. 그 전에 이미지의 크기를 마음 껏 설정할 수 있는데, 이 때 어느정도의 크기를 가지는 이미지가 가장 훈련이 잘되는가에 대해 조사해 보았습니다. 이번 글은 최근 조사해본 것 중 간단하지만, 가장 강력한 효과를 볼 수 있습니다. 또한 저자들은 이미지의 크기를 객체 크기에 맞추어 훈련을 진행했다고 합니다. 객체가 작을수록 이미지를 크게해서 훈련을 진행했는데, 어느 정도 넘어가면 성능향상은 크게 일어나지 않았다고 합니다. ( 어느정도 = 1280 ) v5의 제작자들이 이렇게 말하긴 했는데 실제로 제 데이터에 가장 잘맞는 이미지 크기를 찾기위해서는 다양하게 결과를 확인해보아야 합니다. 따라서 해당 글을 작성하게 되었습니다. 우선적으로 분석전에 이미지 해상도에 대해 간략하게 살펴보고 진행합니다. Resolution 이전까지 1080을 작성했는데 이는 잘못된 표기였습니다. ( 1080은 세로

Omni-Scale Feature Learning for Person Re-Identification [내부링크]

OSnet Re-id Reidentification DeepSORT와 연계되는 내용입니다. 기존의 SORT 알고리즘은 프레임당 객체를 인식하다 보니 같은 물체임에도 불구하고 잠시라도 연계가 끊기게 되면 ID를 다시 재할당하는 문제가 있었습니다. 헝가리안 알고리즘 및 칼만필터를 사용하면서도 추가적인 알고리즘을 부여했다고 합니다. 해당 저자들은 Person Dataset을 통해 실험검증을 하였으나 실제로는 다양한 객체에 적용해도 좋은 결과를 내는 것을 볼 수 있었습니다. Summary Re-ID 문제를 해결하기 위해 나온 모델입니다. 같은 객체임에도 불구하고, 기존에 사용되던 프레임 간의 종속성을 판단하여 같은 객체를 판단하는 것은 오류가 많다고 합니다. 따라서 저자들은 객체를 전체부터 미세한 부분까지 모두 Feature Extraction을 실시하는 Omni-Scale의 훈련을 이야기합니다. 기존에 존재하던 다른 Re-ID 모델에 비해 엄청나게 적은 lightweight를 사용하였는데

Better Aggregation in Test-Time Augmentation [내부링크]

TTA Test-Time Augmentation Data Augmentation Real-Time 06.26일++ TTA를 YOLOv5에 적용하는 방법을 기술하였습니다. Custom 해서 사용할 수도 있어서 Yolov5 뿐만아니라 다른 Recognition Model에서 사용할 수 있는 유용한 기술입니다 ! Test-Time Augmentation 사용 방법 TTA with YOLOv5 ttach Custom TTA 이전에 소개했던 TTA를 실제로 사용하는 방법에 대해서 ... blog.naver.com Summary 기존에 추론환경에서 사용하던 TTA의 문제점과 해결방법에 대해 소개합니다. Standard Policies(기존 정책)을 사용하는 TTA에는 증강 이미지에 대해 평균을 내어 최종 예측을 출력하게 되는데 여기서 생기는 오류에 대해 자세히 설명합니다. 훈련과정에서 미리 증강 사진에 대해 loss를 Cross Entropy를 통해 줄이는 학습을 해두고, 추론에서도 이를 사용

On the Variance of the Adaptive Learning Rate and Beyond : RAdam [내부링크]

Optimizer RAdam warmup Learning Rate RAdam의 탄생 Optimizer는 계속해서 발전을 거듭하고 있습니다. 하지만 그 중에서도 가장 세상을 흔들었던 Optimizer는 ADam일 것입니다. 따라서 그에대한 후속 연구가 정말 많이도 진행되었는데, RAdam도 그 중에 하나라고 할 수 있을 것 같습니다. 시작은 YOLO에서 RAdam의 성능이 좋은지에 대해서 알아보기 위해 시작되었는데, YOLO에서는 SGD 다음으로 좋은 것 같습니다. Vision 문제 분야에서 Adam의 종류 알고리즘들이 좋은 성능을 보이지 못한다고 합니다. 그 이유중 하나가 올바른 Global Optima로의 수렴 진행이 더디다는 문제인데, 이를 해결해주는 방법이 RAdam 입니다. 해당 글은 YOLO에 적용을 위한 시야로 논문을 살펴보았습니다. 논문의 원 내용과는 차이가 존재할 수 있습니다. 글의 마지막 부분에서는 YOLO에 어떻게 간단하게 적용할 수 있는지 알아봅니다. Summar