기초 노트 53

EECS 498-007 Lecture10: Training Neural Networks Part1 정리

Neural Net을 학습시킬때 고려해야 할 요소들에 대해서 알아본다.   Neural Net을 학습시킬때는  학습 사전에 결정되어 진행되는 것들이 있고Learning rate schedule과 같이 학습중에 동적으로 변동되는 것들이 있으며훈련이 모두 마친후 모델 앙상블, 혹은 전이학습(Transfer Learning)과 같이 좀 더 downstream task로 나아가는 방법이 있다.  첫번째로 알아볼 것은 활성화 함수(Activation Function)이다.  NeuralNet에서 활성화 함수로서 선택할 수 있는 대표적인 선택지이다. 디테일에 대해서는 지난시간 내용을 다시 참고하길 바란다.   학습시 Acitvation Function을 Sigmoid함수로 설정했을때의 기능에 대해서 알아보자.Sig..

Concept Drift vs Covariate Shift

1. Concept Drift정의 : 시간이 지남에 따라 타겟 변수인 출력값이 변화하고, 그에 대한 분포가 변하는 현상, 즉 모델이 학습한 관계가 더 이상 미래 데이터에 적용되지 않는 경우 예시 : 예측하려는 고객의 행동 패턴이나, 주식 시장의 트렌드가 시간이 지나면서 달라지는 경우. 예를 들어, 한 시점에서는 고객이 A라는 상품을 선호했지만 시간이 지나면서 B라는 상품을 더 선호하게 되어 모델이 학습한 관계가 더 이상 유효하지 않게 되는 경우가 concept drift에 해당 문제 : 기존의 데이터로 학습한 모델은 잘못된 예측이나 의사결정을 할 수 있다. 2. Covariate Shift정의 : 입력 데이터의 분포가 변하지만, 타겟 변수인 출력값의 분포는 변하지 않는 현상. 예시 : 모델이 학습한 데..

PyTorch cuda에서 CPU추론으로 변경할때 확인해야 할 사항

1.모델1-1. 가중치 로드 model.load(weight_path, map_location=device) # 코드 확인  1-2. 모델 객체 이동 확인 모델객체.to(device) # 코드 확인  1-3. 모델 평가모드 설정with torch.no_grad() 루프와  model.eval()모드 확인 2.  tensor이동'data(tensor).to(device)' 코드 확인 3. nn.DataParallel 삭제멀티-GPU 환경에서 학습한 스크립트 일부를 이용할시, 추론단계에서는 'nn.DataParallel' 관련 코드 삭제 model.to('cuda')model = nn.DataParallel(model)model.to('cuda') 과 의 model의 state_dict의 key값은 상이하..

파이토치(PyTorch) 데이터로더(DataLoader)의 모든 것

(거의) 모든 것 파이토치의 DataLoader 클래스는 데이터셋을 다루기 위한 강력한 도구로, 모델 학습을 위한 배치(batch)를 생성하고 데이터를 불러오는(load) 작업을 관리하는 기능을 한다.각각의 인자(arugment)들은 데이터로더의 설정을 돕게 된다. DataLoader- Dataset에 대하여 data를 로드하는 iterative한 객체- 아래와 같은 argument를 받음import torchfrom torch.utils.data import Dataset, DataLoader, SequentialSampler, RandomSampler, SubsetRandomSampler, BatchSamplerDataLoader(dataset, batch_size=1, shuffle=False, s..