본문 바로가기

전체 글39

[DL - 논문 리뷰] A Style-Based Generator Architecture for Generative Adversarial Networks (StyleGAN) 이번 포스팅에서는 Karras et al.이 CVPR 2019에서 발표한 "A Style-Based Architecture for Generative Adversarial Networks" 를 읽고 정리해보도록 하겠습니다. 해당 논문은 StyleGAN으로 잘 알려져 있으며 이후 발표된 StyleGAN2, 3 모두 SOTA를 달성하고 있고 현재 GAN을 대표하고 있습니다. StyleGAN은 PGGAN을 베이스로 연구되었습니다. 1. Introduction GAN을 이용하여 생성하는 이미지의 품질과 해상도는 급격하게 증가하고 있습니다. 그러나, 이러한 GAN들은 실제로 어떻게 작동되는지 알 수 없는 blackbox와 같고, latent space에 대한 속성들은 잘 설명되지 않습니다. Style transf.. 2022. 8. 3.
[DL - 논문 리뷰] Progressive Growing of GANs for Improved Quality, Stability, and Variation (PGGAN) 이번 포스팅에서는 Tero Karras et al.이 ICLR 2018에서 발표한 "Progressive Growing of GANs for Improved Quality, Stability, and Variation"을 읽고 리뷰해보도록 하겠습니다. PGGAN은 현재 GAN 분야에서 sota를 달성하고 있는 StyleGAN 시리즈의 기반이 되었습니다. 1. Introduction GAN을 이용하여 고해상도의 이미지를 생성하는 것은 아주 어려운 태스크입니다. 고해상도의 이미지를 생성하도록 generator를 학습시키는 경우 학습 이미지의 distribution과 학습 결과 생성된 이미지의 distribution의 차이가 커집니다. 또한 고해상도의 이미지는 같은 자원에서 저해상도의 이미지보다 적은 배치사이.. 2022. 7. 29.
[DL - 논문 리뷰] Few Shot Generative Model Adaption via Relaxed Spatial Structural Alignment 이번 포스팅에서는 CVPR 2022에서 발표된 Jiayu Xiao et al.의 "Few Shot Generative Model Adaption via Relaxed Spatial Structural Alignment"를 읽고 정리해 보도록 하겠습니다. 1. Introduction 본 논문에서는 few-shot image generation을 다루고 있습니다. Few-shot image generation을 다룬 최근의 논문인 Ojha et al. 의 논문(IDC)에서 크게 두 가지의 문제점을 지적합니다. 첫번째는 identity degradation으로 source domain에서에 비해 target domain으로 전이되었을 때 identity가 떨어진다는 점입니다. 두번째는 unnatural dis.. 2022. 7. 23.
[DL] PyTorch에서의 Reproductibility 보장하기 PyTorch를 비롯한 많은 딥러닝 프레임워크는 weight initialization 부터 시작하여 수많은 요소가 랜덤하게 적용된다. 연구나 모델링 대회(Kaggle, Dacon 등)을 진행할 때 중요한 것중 하나는 코드의 재현성(reproductibility)을 확보하는 것이다. 연구나 대회를 진행함에 있어 성능 변화가 실제로 코드 수정에 의한 것인지, 아니면 랜덤한 요소 때문에 운좋게 혹은 운나쁘게 성능이 변화한 것인지 구분하기가 어렵다. 그렇기 때문에 주로 시드를 고정하는 방식으로 재현성을 확보하는 방법이 일반적이다. PyTorch에서의 reproductibility import torch seed = 0 torch.manual_seed(seed) torch.cuda.manual_seed(seed.. 2022. 7. 22.
[GitHub] 여러 커밋에 걸쳐 변경 사항 확인하기 Git 또는 GitHub를 사용하다보면 diff를 통해 변경사항을 추적하는 일이 빈번하게 일어납니다. 예전에 작성했던 동아리 노드 교육자료였던 GitHub를 보면 이런 식으로 각 디렉토리나 파일이 최근 어떤 커밋에 의해 변경되었는 지 확인할 수 있거나, 아니면 위 박스를 클릭하여 커밋들을 쭉 확인할 수 있고 특정 커밋을 클릭하여 이전 커밋과 비교하여 어떤 변화가 있었는 지 확인할 수 있습니다. 그러나, 여러 커밋에 걸쳐 파일이 어떻게 변화했는지 필요할 때도 있습니다. 방법은 간단합니다. 우선 확인하고자 하는 시작 커밋과 끝 커밋의 해쉬값을 알고 있어야합니다. 해쉬값은 여기 빨간 부분에 해당합니다. 그 다음 브라우저 주소창에 (repo 주소)/compare/(시작 커밋 hash)...(끝 커밋 hash)를.. 2022. 4. 17.
[ETC] FileZilla에서 한번에 2개 이상의 파일 전송하기 Backend를 공부할 때도, 딥러닝을 공부할 때도 컴퓨터간에 파일을 옮겨야 하는 일이 종종 발생하곤 합니다. 저의 경우에는 Linux간의 파일 교환이 필요할 땐 주로 scp를 사용하여 옮기곤 합니다. scp source_file user@ip.ad.dr.ess:/destination/path 그러나 Windows 운영체제와 Linux 운영체제간 파일 교환할땐 Windows 자체에 scp 명령어가 없기도 하고(git bash에서는 가능합니다), 주로 FileZilla를 사용하여 ftp(sftp)로 파일을 주고 받습니다. 그렇게해서 FileZilla를 잘 사용하던 도중, 대용량의 (26만장)의 이미지를 전송해야 할 상황이 발생했고, 약 26만장 중 고작 6만장의 이미지를 전송하는 데 11시간이 걸렸습니다... 2022. 3. 27.