본문 바로가기

[Day8] Pytorch 6. 모델 불러오기 : model.save(), load, checkpoint, freeze, transfer learning 최근 finetuning을 많이 하기 때문에 다른 사람이 만든 모델을 불러오고 사용하는 방법을 알아보자 학습 결과에 대한 모델과 파라미터 저장 학습의 결과를 저장해주는 함수이다. 모델의 architecture 와 parameter를 저장한다. 또한 중간과정을 저장해서 나중에 최선의 결과인 모델을 선택할 수 있다 model.state_dict() : 모델의 파라미터 표시 torch.save(model.state_dict()) : 모델의 파라미터 저장 model.pt 라는 pd파일로 저장 load_state_dict() : 파라미터만 load torch.save() : 모델의 architecture와 파라미터가 함께 저장 torch.load() : 모델의 architecture와 파라미터가 함께 load f..
[Day7] Pytorch 5. Pytorch Dataset : dataset, transforms, DataLoader 대용량 데이터 처리가 중요하다 Dataset 클래스 데이터 입력 형태를 정의해서 표준화 시킨다 데이터를 어떻게 불러올 것인지, 길이는 얼마인지를 정의한다. 어떻게 반환해 줄 것인지를 __getitem__()에서 map-style로 결정해준다 import torch from torch.utils.data import Dataset class CustomDataset(Dataset): # 초기 데이터 생성 방법을 지정 # 데이터의 directory 지정을 하기도 함 def __init__(self,text,labels): self.label=labels self.data=text # 데이터의 전체 길이 def __len__(self): return len(self.labels) # 반환되는 데이터의 형태 #..
[Day7] Pytorch 4. AutoGrad & Optimizer : Module, Parameter torch로 layer 구성하기 torch.nn.Module : 딥러닝을 구성하는 Layer의 base class input output forward $\hat{y}$값을 구하는 과정 cost 구하기 backward weight를 autograd(미분) optimize를 해서 gradient를 update nn.Parameter weight같은 것들 nn.Module 내에 attribute가 될 때 required_grad=True로 자동 지정된다. required_grad=True의 뜻은 backward 때 미분의 대상이라는 의미이다. Tensor의 상속객체
[Day6] Pytorch 3. PyTorch 프로젝트 구조 이해하기 : template, ngrok 초기 대화식 개발 과정 유리 ex)jupyter 배포 및 공유 notebook 공유 어려움, 재현 꼬임 프로젝트 template 실행 데이터 모델 설정 로깅 유틸리티 등.. 을 https://github.com/victoresque/pytorch-template GitHub - victoresque/pytorch-template: PyTorch deep learning projects made easy. PyTorch deep learning projects made easy. Contribute to victoresque/pytorch-template development by creating an account on GitHub. github.com 에서 가져오면 편하다 clone하거나 로컬에 저장하..
[Day6] Pytorch 2. Pytorch Basics : Tensor, data types, handling, operations, formula Pytorch numpy numpy 기반 autograd 자동미분 지원 function 다양한 형태의 함수와 모델 지원 Tensor 다차원 arrays를 표현하는 pytorch 클래스 python의 list = numpy 의 ndarray = pytorch 의 tensor = tensorflow의 tensor import numpy as np import torch arr=list(range(10)) print(arr) np_array=np.array(arr) print(f"type : {type(np_array)}, ndim : {np_array.ndim}, shape : {np_array.shape}") torch_tensor=torch.tensor(arr) print(f"type : {type(to..
[Day5] AI math 8. 베이즈 통계학 맛보기 베이즈 통계학 데이터가 추가될 때 정보 업데이트 하는 방법에 대한 이론 조건부 확률 $P(A \cap B)$ A와 B라는 두 사건이 있을 때 $B$가 일어난 상황에서 사건 A가 일어날 확률 $$P(A \cap B) = P(B)P(A|B)$$ 베이즈정리 조건부 확률을 이용해서 정보를 갱신하는 방법 $$P(B|A) =\frac{ P(A|B) }{P(A)} = P(B) \frac{P(A|B)}P{A} $$ 여기에서는 새로운 정보 A가 들어왔을 때 원래 사건이 일어날 확률 P(B|A)을 계산하는 것이다 사후확률 : Posterior probability 데이터를 관찰했을 때 hypothesis가 성립할 확률 데이터를 관찰한 이후에 측정한다. 사전확률 : Prior probability 사전에 데이터가 주어지지 ..
[Day4] AI math 7. 통계학 맛보기 : 모수, 확률분포, 정규분포,최대가능도 추정법, MLE, 로그가능도, 확률분포 거리, 쿨백라이블러 발산 통계적 모델링은 적절한 가정 위해서 확률분포를 추정하는 것이 목표이다 다양한 확률분포를 사용해서 모델링할 것이냐가 중요하다 일부의 데이터로 모든 데이터의 분포를 정확하게 알아낸다는 것은 불가능하므로 근사적으로 확률분포를 추정할 수 밖에 없다. 모수 Parameter 모수적 방법론 parametric 데이터가 특정 확률분포를 따른다고 선험적으로 (a priori) 가정한 후 그 분포를 결정하는 모수를 추정하는 방법 ex) 정규분포의 평균과 분산 비모수 방법론 nonparametric 특정 확률분포를 가정하지 않고 데이터에 따라 모델과 모수의 개수가 바뀌는 방법 모수가 없는 것이 아니라 모수가 무한히 많거나 데이터에 따라 모수가 바뀌는 것이다 두 방법론의 차이는 어떤 가정을 미리 부여를 하는지 아닌지에 따라..
[Day4] AI math 6. 확률론 맛보기 : 확률분포, 확률변수, 결합분포, 주변확률분포, 조건부 확률분포, 조건부 확률, 기대값, 몬테카를로 샘플링 기계학습과 딥러닝은 확률론을 기반으로 해서 이해하려면 확률론을 알아야 한다. 예를 들어, 학습시 필요한 loss fuction (손실함수)는 데이터공간을 통계적으로 유도하기 때문에 중요하다. 확률분포 데이터를 표현하는 초상화 확률분포를 한 번에 구하기는 불가능하다. 그래서 기계학습 모형으로 이 확률분포를 추론하게 된다. 추론하는 데이터 공간을 $\mathscr{X} \times \mathscr{Y}$ 로 표기한다. 확률변수 우리가 관측하는 실제 데이터는 확률변수로 표기한다. 확률변수 $(\textbf{x},y) $ 는 $\mathscr{X} \times \mathscr{Y}$의 원소이다 $$ (\textbf{x},y) \in \mathscr{X} \times \mathscr{Y}$$ 확률변수는 함수로 생..