본문 바로가기

pytorch4

[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.
[DL] GAN을 평가하는 방법 - IS, FID, LPIPS 이번 포스팅에서는 GAN을 평가하는 데 주로 사용되는 metric인 IS, FID 그리고 LPIPS에 대해 알아보도록 하겠습니다. GAN은 두가지 관점에서 평가됩니다. Quality: 실제 이미지와 유사한 이미지가 생성되는가 Diversity: 여러 noise vector에 걸쳐 다양한 이미지가 생성되는가 앞으로 소개해 드릴 metric들은 위 두가지 관점에서 GAN을 평가하기 위해 사용됩니다. Inception Score (IS) IS는 ImageNet pretrained model인 inception-v3를 이용하여 GAN을 측정합니다. IS를 계산하기 위해 두가지 확률이 필요한데 하나는 조건부 확률 \(P(y|x)\)로 생성된 이미지 x에 대해서 어떤 클래스에 속할지 예측하는 것입니다. 고품질의 이.. 2022. 2. 20.
[DL] 딥러닝에서 미세 조정(Fine Tuning) vs 특징 추출(Feature Extraction) Convolutional Neural Network를 살펴보면 대개 두가지의 부분으로 구성되어 있다. 첫번째는 Convolutional Layers로, 입력(대개 이미지)에 대한 feature를 추출하는 역할을 맡는다. 두번째는 Classifier로 Conv. Layers로부터 획득한 feature를 토대로 해당 입력이 어떤 class에 속하는지 판단한다. 이전 포스팅에서 언급한 바와 같이, 시간과 비용 문제로 인해 대개 well-trained network를 transfer learning하여 사용하곤 한다. 그런데 transfer learning에 관한 자료들을 찾다 보면 fine tuning이라는 용어도 보이고, feature extraction이라는 용어도 보이곤 한다. 이번 포스팅에서는 두 방법.. 2021. 9. 6.
[DL] Pytorch에서의 Transfer Learning 이번 포스팅에서는 Transfer Learning에 대해 서술해보고자 한다. 우선 Tranfer Learning이란 어떤 문제(Image Classification 등)를 해결하기 위해 aritifical neural network를 사용하고자 할 때, 시간과 비용을 상대적으로 많이 투자하여 직접 network를 구성하는 것이 아닌 우수한 dataset(ImageNet, CIFAR10 등)으로 pretrained된 network를 사용하는 것이다. Computer Vision, 특히 Image Classification 분야에서는 torchvision이나 timm이 여러 SOTA(State-Of-The-Art) models를 제공해 준다. 사용법은 매우 간단하다. Transfer Learning with.. 2021. 9. 2.