About Me/AI Tech(95)
-
[Week 2- Day 5] 회고
# nn.Module내의 Apply 함수 nn.Module의 모든 sub-module에 대해 재귀적으로 인수인 fn을 적용한다. 보통 모델의 가중치를 초기화하기 위해 많이 사용한다고 한다. @torch.no_grad() def init_weights(m): print(m) if type(m) == nn.Linear: m.weight.fill_(1.0) print(m.weight) net = nn.Sequential(nn.Linear(2, 2), nn.Linear(2, 2)) net.apply(init_weights) # Cuda https://ko.wikipedia.org/wiki/CUDA Compute Unified Device Architecture 의 약자. GPU를 수행하는 병렬처리 알고리즘을 C..
2022.01.30 -
[Week 2- Day 4] 회고
# Multi-GPU - Signle(1개) vs Multi(2개) - GPU vs Node(1대 컴퓨터) - Signle Node Signle GPU vs Signle Node Multi GPU(많은 경우) vs Signle Node Signle GPU - module 병렬화 : module의 반으로 쪼개서 각각의 GPU에서 학습 - data 병렬화 : data를 나눠서 병렬적으로 학습 # DataParallel (py는 GIL 문제 있을 수O) parallel_model = torch.nn.DataParallel(model) # DistributedDataParallel (사실 복잡 & 신경써야할 게 많아서 거의 안써!) train_sampler = torch.utils.data.distributed..
2022.01.27 -
[Week 2- Day 3] 회고
# 남이 만든 Model 가져오기 Model을 저장하는 방법 - 아키텍처(architecture) 저장 --> NLP에서는 HuggingFace가 사실상 표준 - 파라미터(parameter) 값 저장 --> checkpoint 가져오기 (Checkpoint = 중간결과 저장) Colab Pro Colab이 꺼지면 결과가 날라가는데, Pro를 결제하면 저장하거나 카톡으로 결과를 보내놓을 수 있다. pre-trained Model 활용 시, Parameter 일부분을 frozen 시켜 학습함. ex. [param1, frozen-param2, frozen-param3, frozen-param4, frozen-param5] .pth 파일은 pytorch extension 뭐시기 하는 파일인데, 그냥 .pt 파..
2022.01.27 -
[Week 2- Day 2] 회고
# Forward pass vs Backward pass Forward pass Backward pass forward의 결과 값은 예측치(y_hat)에 해당한다. AutoGrad는 backward 함수를 호출해서 진행한다. optimizer.zero_grad() # 0으로 초기화 outputs = model(inputs) # 예측치(y_hat) loss = criterion(outputs, labels) # 손실 함수 (ex. MSELoss) loss.backward() # optimizer에서 미분대상에 대해 미분 수행 (ex. SGD방식) optimizer.step() # 한 번에 변수 모두 update # Dataset 클래스 from torch.utils.data import Dataset, D..
2022.01.25 -
[Week 2- Day 1] 회고
# PyTorch 딥러닝 모델을 짜기 위한 프레임워크. 예전에는 Julia, Keras 등등 수많은 딥러닝 프레임워크가 존재했지만, PyTorch와 TensorFlow가 남았다고 볼 수 있다. 여기서 Keras는 어떤 기능이 있기 보다는 Wrapper로서, 고수준 API라고 볼 수 있다. 딥러닝 프레임워크가 필요한 이유는 기초부터 다짜서, 프로젝트를 완성하기에는 너무 오랜시간이 걸리기 때문이다. 하지만 실제로 기본 바닥부터 짜기도 한다. 만약 원한다면, 를 보는 것을 추천한다. TensorFlow PyTorch Define and run Define by Run Dynamic Computation Graph (DCG) static graph 그려서, 나중에 실행시점에 역전파가 일어남. graph를 작성하..
2022.01.24 -
과제 설명: 경사하강법으로 선형회귀 문제 풀기
경사하강법은 현재 지점에서의 미분을 계산해야 하므로, 미지수가 있는 식을 표현하거나 미분값을 계산할 수 있어야 한다. Python에는 수학의 미지수 등의 기호를 사용하게 해주는 SymPy library가 있다. 문제 1. 이차함수의 최소값 찾기 알고리즘을 설명하자면 다음과 같다. - 2차 함수식이 주어질 때, 시작점을 지정한다. - 해당 시작점에서의 기울기 값을 계산하여, 현재 지점을 update하면서 최저점을 찾아나간다. 여기서 기울기 값이 양수라면 x값을 작게하고, 음수라면 x값을 크게해야 최저점으로 갈 수 있다. 특정 지점에서 기울기(미분) 값을 계산하는 방법은 다음과 같다. 1. sympy.diff()로 x에 대해 미분한 함수식(도함수)를 구한다. 2. 미분에 대한 정의를 토대로, h를 0에 가장..
2022.01.22