일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Multimodal Large Language Model
- 주식
- 모델 구조 변경
- mPLUG-2
- 강화학습
- pretrained model layer
- def validation
- 주식 용어정리
- DeepNet
- 파라미터 수 확인
- Foundation Transformers
- def train
- Video Understanding
- 특정 layer 추출
- 파라미터 수
- MLLM
- KOSMOS-2
- Instruction dataset
- 3C4P
- 모델 동결
- 가중치 없이 모델 로드
- 모델 freeze
- 논문 작성 요령
- cnn
- mqtt
- 특정 layer 동결
- 가상환경
- layer 추출
- 논문 작성
- 논문리뷰
- Today
- Total
목록전체 글 (115)
시작은 미약하였으나 , 그 끝은 창대하리라
. Numpy → Tensor output = torch.Tensor(input) # 새로운 메모리에 할당. output = torch.from_numpy(input) # 기존 메모리에 할당. (where input is Numpy type, output is Tensor type) 2. Tensor → Numpy output= np.array(input) (where input is Tensor type, output is Numpy type) (암기도 하려고 노력해야 외워진다.)
상황: 딥러닝을 하다보면 1차원을 추가 및 제거를 위한 단계가 필요하게 된다. 1. squeeze : 1차원 제거 역할. import torch x= torch.ones(5,4,1,4,1) x1 = x.squeeze() # 모든 1차원 제거 print(x1.size()) # torch.Size([5, 4, 4]) x2= x.squeeze(dim = 2) print(x2.size()) # torch.Size([5, 4, 4, 1]) x3= x.squeeze(dim = -1) # dim=4 와 같음 print(x3.size()) # torch.Size([5, 4, 1, 4]) x4= x.squeeze(dim = 1) # 잘못된 차원 삭제 불가능. print(x4.size()) # torch.Size([5, ..
문제 발생 : kaggle에서 과제를 진행하는데 자꾸 에러가 뜨는것이다. 정확히 기억은 안나는데 type이 안맞다고....근데 print를 찍어보면 심지어 문제없이 잘 나오는것이다.....(조교한테 질문함) 문제 상황 : 딥러닝 학습에서 loss 값은 y_predict 와 y_ground truth 값으로 계산을 수행한다. 하지만 y_ground truth 값 즉, index( label)의 값이 항상 0부터 시작하지는 않는다. 문제 해결 : index(label) 이 항상 0 부터 시작해야함. 즉, 1부터 시작하는 label 이라면 -1을 해서 0 부터 시작 지점을 만들어야 함. (아래 사진을 보면 class indices in the range [0 ,C) 라고 명시되어 있다.)
※ (23.12.17기준) -> 코드 동작 100퍼센트 확인 못해봄. ✓ pytorch 에서는 Train 과 evaluation 과정을 코드를 통해 수행한다. ✓ 이를 위해 스크래치 코드를 작성해보았다. (회귀 문제임) ✓ 분류는 train에서 loss, accuracy 처리법이 상이함. ❏ 분류 문제 Train, Validation 함수 → 주의사항 : 회귀문제는 정확도를 뽑지않고 Loss 값만 출력을 실행하고, 모델을 평가할때도 정확도 지표보단 error(오차)값을 평가 지표로 사용한다. (이유: 회귀문제는 경향성(추세)이 중요하기 때문임, 정확도를 평가지표로 사용한다면, 말도 안되는 처참한 결과를 볼 수 있다.) # 학습 함수 training_loss_hist = [] # tuple() 로 해도됨 ..
✓ pytorch 에서는 Train 과 Validation 과정을 코드를 통해 수행한다. ✓ 이를 위해 스크래치 코드를 작성해보았다. (분류 문제임) ✓ 회귀는 train에서 loss, accuracy 처리법이 상이함. ❏ 분류 문제 Train, Evaluation 함수 → 주의사항. 분류문제에서 cross entropy를 계산을 위해서는 y값이 LongTensor 여야 함. (Float으로 했다가 고생했던 기억이.. 까먹지 말자) → 유용한 팁. 만약 학습이 잘되는지 확인을 하고싶다면 tqdm을 사용하면 최소 2번이상은 되어야 학습이 잘되는지 loss값 감소를 통해 확인 할 수 있다. (물론 wandb 사용 안할때) 초반에 학습이 잘되는지 확인하고 싶다면 아래코드에서 tqdm을 빼버리고 주석처리된 부분..
✓ 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..
✓ 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...
➢ Loss, Accuracy 에 따라 코드가 일부 상이함으로 주의. ✓ Pytorch 는 Tensorflow 처럼 Early stopping API 를 제공하지 않는다. 결국 early stopping을 위해 Pytorch 에서는 직접 구현을 해야 함. ✓ train.py (학습코드) 에 직접 추가할수도 있지만, 필자는 가독성을 위해서 class로 만들어서 train.py에 호출해서 사용한다. ✓ 이해를 위한 선행 지식 (예시 참고) : 'def __init__ ' 기능 : class 인스턴스를 생성 할 때, 관련된 데이터를 초기화(initialization) 하는 함수 'def __call__ ' 기능 : 해당 인스턴스를 함수처럼 호출 가능. # 이해를 위한 예시 코드 # 클래스 생성 class Ex..