본문 바로가기

전체 글136

[Pytorch 스크래치 코드] 회귀문제 Train, Validation 함수 ※ (23.12.17기준) -> 코드 동작 100퍼센트 확인 못해봄. ✓ pytorch 에서는 Train 과 evaluation 과정을 코드를 통해 수행한다. ✓ 이를 위해 스크래치 코드를 작성해보았다. (회귀 문제임) ✓ 분류는 train에서 loss, accuracy 처리법이 상이함. ❏ 분류 문제 Train, Validation 함수 → 주의사항 : 회귀문제는 정확도를 뽑지않고 Loss 값만 출력을 실행하고, 모델을 평가할때도 정확도 지표보단 error(오차)값을 평가 지표로 사용한다. (이유: 회귀문제는 경향성(추세)이 중요하기 때문임, 정확도를 평가지표로 사용한다면, 말도 안되는 처참한 결과를 볼 수 있다.) # 학습 함수 training_loss_hist = [] # tuple() 로 해도됨 .. 2023. 12. 17.
[Pytorch 스크래치 코드] 분류문제 Train, Validation 함수 ✓ pytorch 에서는 Train 과 Validation 과정을 코드를 통해 수행한다. ✓ 이를 위해 스크래치 코드를 작성해보았다. (분류 문제임) ✓ 회귀는 train에서 loss, accuracy 처리법이 상이함. ❏ 분류 문제 Train, Evaluation 함수 → 주의사항. 분류문제에서 cross entropy를 계산을 위해서는 y값이 LongTensor 여야 함. (Float으로 했다가 고생했던 기억이.. 까먹지 말자) → 유용한 팁. 만약 학습이 잘되는지 확인을 하고싶다면 tqdm을 사용하면 최소 2번이상은 되어야 학습이 잘되는지 loss값 감소를 통해 확인 할 수 있다. (물론 wandb 사용 안할때) 초반에 학습이 잘되는지 확인하고 싶다면 아래코드에서 tqdm을 빼버리고 주석처리된 부분.. 2023. 12. 16.
[Pytorch 스크래치 코드] Train Test split ✓ Tensorflow 에는 Train Test split 이라는 API가 존재하지만 Pytorch에서는 존재하지 않는다. ✓ 대표적인 데이터셋은 처음부터 Train, Validation, Test 를 주어서 데이터를 분리할 필요가 없다, 하지만 우리가 직접 데이터를 수집해서 학습을 한다면 Train, Validation, Test 을 나눠야한다. ✓ 이를 위해 이번 글에서는 Pytorch 를 사용하여 Train Validaion Test로 나누는 방법을 소개한다. ➢ 주의 사항 : 실험을 동일하게 재현하고 싶으면 random seed 값을 고정하고 돌려야함. ❏ Train, Validation, Test 로 나누기 from torch.utils.data import DataLoader, random_s.. 2023. 12. 10.
[Pytorch 스크래치 코드] 실험 재현을 위한 Seed 고정 ✓ ablation study를 진행하다보면 다른 seed값이 모두 동일하게 고정적으로 설정이 되있어야 한다. ✓ 이를 방지하기 위해 우리는 seed 값 고정을 하여 수행한다. ❏ 실험 재현을 위한 seed 값 고정 코드 # 실험 재현을 위한 seed 고정 def seed_everything(seed: int): import random, os import numpy as np import torch import tensorflow as tf random.seed(seed) os.environ['PYTHONHASHSEED'] = str(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.backends... 2023. 12. 9.
[Pytorch 스크래치 코드] Early Stopping ➢ Loss, Accuracy 에 따라 코드가 일부 상이함으로 주의. ✓ Pytorch 는 Tensorflow 처럼 Early stopping API 를 제공하지 않는다. 결국 early stopping을 위해 Pytorch 에서는 직접 구현을 해야 함. ✓ train.py (학습코드) 에 직접 추가할수도 있지만, 필자는 가독성을 위해서 class로 만들어서 train.py에 호출해서 사용한다. ✓ 이해를 위한 선행 지식 (예시 참고) : 'def __init__ ' 기능 : class 인스턴스를 생성 할 때, 관련된 데이터를 초기화(initialization) 하는 함수 'def __call__ ' 기능 : 해당 인스턴스를 함수처럼 호출 가능. # 이해를 위한 예시 코드 # 클래스 생성 class Ex.. 2023. 12. 9.
[논문리뷰 : 개념] CapERA: Captioning Events in Aerial Videos 논문 링크 : https://www.mdpi.com/2072-4292/15/8/2139 CapERA: Captioning Events in Aerial Videos In this paper, we introduce the CapERA dataset, which upgrades the Event Recognition in Aerial Videos (ERA) dataset to aerial video captioning. The newly proposed dataset aims to advance visual–language-understanding tasks for UAV videos by providing eac www.mdpi.com Published : 2023.04.18 (MDPI- Remote S.. 2023. 12. 6.