전체 글 33

Global Interpreter Lock(GIL) - [process vs thread]

Python은 Global Interpreter Lock(GIL)이라는 큰 특징을 갖고 있는 언어입니다. Python을 느리게 하는 대표적인 특징이며 본 글은 GIL에 관한 공부 내용입니다. 기본적인 Process와 Thread에 관한 내용 Process 정의 process란 실행중에 있는 프로그램. 또는 운영체제로부터 자원(CPU 시간, 메모리, 주소 공간 등)을 할당받은 작업의 단위(인스턴스). 작동원리 - 프로세스에겐 각각 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당. 1. Code 영역 (정적) - 프로그램을 실행시키는 실행 파일 내의 명령어 (소스코드). - Read Only - 프로세스 종료될 때 까지 유지. 2. Data 영역 (정적) - 전역변수(global), ..

python 2022.04.08

Optimzer 정리

헷갈리면 들어와서 볼 수 있도록 정리한 글. 1. Stochastic Gradient Descent Gradient Descent 방법을 mini batch 단위로 적용시키는 방법. 가장 기본 방법. 2. Momentum 이전에 적용했던 gradient 값도 반영시키는 방법. \(v_{t}\)는 적용될 gradient의 크기 혹은 속도로 표현됨. 3. Adagrad gradient의 제곱을 이용하여 학습 방향을 조정. (다른 곳에선 \(h\)로 표기하는데 식을 가져온 사이트에선 \(g\)로 표기했다.) 이 때 제곱은 각 요소들의 제곱으로 사실은 저런 표현은 헷갈리는 표현이다. $$ \bigtriangledown_{\theta}\mathcal{L}(\theta)^{2} = \bigtriangledown_{..

ML theory 2022.03.31

kind를 이용하여 Windows에서 kubeflow 1.4 설치

kind 프로그램을 이용하여 간단하게 kubernetes 환경을 만들 수 있습니다. 0. WSL 활성화 - 설치 생략 - Users 폴더에 .wslconfig 파일을 만들어서 resource를 설정할 수 있습니다. 1. Docker 설치 - 설치 생략 - 설정 -> resource -> wsl integration 활성화 2. kind 설치 참조 : https://kind.sigs.k8s.io/docs/user/quick-start/#installation # curl을 이용한 설치 curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.12.0/kind-windows-amd64 # kind 파일을 원하는 위치로 이동 Move-Item .\..

kubernetes 2022.03.29

Learning Deep Features for Discriminative Localization(CAM)

출간 : CVPR 2015 저자 : Bolei Zhou, Aditya Khosla, Agata Lapedriza, Aude Oliva, Antonio Torralba 주제 : CNN Visualizing(Object Localizing) - 요약 우리는 Neural Network의 내부를 black box의 영역으로 치부하곤 합니다. 그러나 그 영역을 끊임없이 연구했기 때문에 지금까지 여러 학습 기법들이 나왔겠죠. 본 논문은 CNN의 상태를 시각적으로 표현하는 방법론이기 때문에 쉽게 모델을 파악할 수 있는 방법이라고 생각됩니다. CAM(Class Activation Maps)이란 기법은 모델의 Backbone을 다 통과하고 난 뒤의 Feature를 활용하여 모델을 해석하는 방법입니다. 1. Introdu..

Docker (혹은 Linux) 한글경로 깨짐 문제

linux에서 한글 경로가 깨진다면 현재 프로그램의 인코딩 형식을 봐야 합니다. 1. 현재 인코딩 설정 확인 echo $LANG 2. locale 설치 sudo apt-get install language-pack-ko 3. 환경변수 설정 export LANGUAGE=ko_KR.UTF-8 export LANG=ko_KR.UTF-8 4. locale update locale-gen ko_KR ko_KR.UTF-8 update-locale LANG=ko_KR.UTF-8 5. loacle 설정 dpkg-reconfigure locales Enter 누르면서 "ko_KR.UTF-8 UTF-8" 의 번호를 확인해서 설치하면 됩니다. (현재는 298 : ko_KR.UTF-8 UTF-8) 마지막에 3번으로 기본 lo..

docker 2022.03.08

Variational AutoEncoder (VAE)

이번 글은 Explicit Generative model 중 가장 대표적인 Variational Auto-Encoder에 대해 공부한 내용을 정리하려고 합니다. Explicit model은 Implicit model에 비해 성능이 떨어지지만 저희가 알고 있는 분포를 기반으로 모델링이 되기 때문에 데이터와 결과에 대한 분석이 더 용이하여 사용될 수 있다고 합니다. Implicit model인 GAN에 비해서 정확히 어떤 식으로 활용되는지는 솔직히 아직 잘 모르겠네요.. 그러나 머신 러닝을 한다면 VAE 정도는 알고 있어야 하지 않을까 싶은 마음에 자세하게 공부를 하게 되었고, 공부한 내용을 정리하는 글을 쓰고자 합니다. 본 글은 "An Introduction to Variational Autoencoder..

ML theory 2022.03.06

Dual Contrastive Learning for Unsupervised Image-to-Image Translation (DCLGAN)

출간 : CVPRW 2021 저자 : Junlin Han, Mehrdad Shoeiby, Lars Petersson, Mohammad Ali Armin 주제 : Unsupervised Image Translation (GAN) git : JunlinHan/DCLGAN: Code for Dual Contrastive Learning for Unsupervised Image-to-Image Translation, NTIRE, CVPRW 2021, oral. (github.com) paper : 2104.07689.pdf (arxiv.org) 요약 unsupervised image translation에서 sota를 달성한 CUT를 기반으로 하여 만든 모델입니다. CUT에선 하나의 Encoder를 사용했지만,..

GAN 2022.02.13

Detectron2 - Training 응용

detectron2 official example : https://github.com/facebookresearch/detectron2/tree/main/projects 간략한 학습 코드 : https://github.com/nhm0819/detectron2_training 이번에는 detectron2 튜토리얼에 있는 과정 말고, 조금 더 customize 하는 방법에 대해 소개하려고 합니다. detectron2 tutorial에서 학습하는 코드를 보면 아래와 같이 되어있습니다. from detectron2.config import get_cfg from detectron2.engine import DefaultTrainer cfg = get_cfg() # default configure cfg.DAT..

Detection 2022.02.08

Detectron2 - 설치, Training 기초

object detection을 위한 api로는 대표적인게 Detectron, MMDetection, YOLOv5, 이 3가지 인 것 같습니다. 사실 제가 그냥 아는 api가 3개 밖에 없네요..ㅋㅋ 요즘 보면 Detectron보단 MMDetection이 훨씬 더 많은 모델들을 지원하고, 또 자주 업데이트 하는 것 같네요. 뭐 여하튼 본 글은 Detectron2에 대한 설명 글입니다. 0. 설치 linux, macOS 는 공식 문서에 나와있는 절차대로 따라하시면 쉽게 설치가 됩니다. (https://detectron2.readthedocs.io/en/latest/tutorials/install.html) 문제는 windows인데요, windows는 공식적으로 지원하고 있진 않습니다. windows는 아래..

Detection 2022.02.07