[Tistory] 파이토치 딥러닝 마스터

원글 페이지 : 바로가기

책 깃허브 링크 https://github.com/deep-learning-with-pytorch/dlwpt-code GitHub – deep-learning-with-pytorch/dlwpt-code: Code for the book Deep Learning with PyTorch by Eli Stevens, Luca Antiga, and Th Code for the book Deep Learning with PyTorch by Eli Stevens, Luca Antiga, and Thomas Viehmann. – deep-learning-with-pytorch/dlwpt-code github.com ch2. Numpy vs Tensor ch3. 텐서 조작하기 https://anweh.tistory.com/11 [DL, PyTorch] 벡터, 행렬, 텐서 1. 정의 – 스칼라: 차원이 없는 값 – 벡터: 1차원으로 구성된 값 – 행렬: 2차원으로 구성된 값 / 일반적으로 이용하는 데이터 형태 (batch size, dim) – 텐서: 3차원으로 구성된 값 / Vision에서는 (batch size, l anweh.tistory.com https://wikidocs.net/52460 02-02 텐서 조작하기(Tensor Manipulation) 1 이번 챕터에서 배울 내용에 대해서 리뷰해보겠습니다. 벡터, 행렬, 텐서의 개념에 대해서 이해하고, Numpy와 파이토치로 벡터, 행렬, 텐서를 다루는 방법에 대해서 이해합니… wikidocs.net https://wikidocs.net/52846 02-03 텐서 조작하기(Tensor Manipulation) 2 이어서 텐서를 조작하는 방법을 알아보겠습니다. #### 4) 뷰(View) – 원소의 수를 유지하면서 텐서의 크기 변경. 매우 중요! 파이토치 텐서의 뷰(View)는 넘파이에서… wikidocs.net https://velog.io/@hyoeun98/Tensor-dimension%EC%97%90-%EA%B4%80%ED%95%98%EC%97%AC Tensor dimension에 관하여 torch.tensor의 dim, 혹은 numpy의 axis에 대해 직관적으로 이해하기 velog.io einsum https://haystar.tistory.com/93 https://velog.io/@regista/%EB%B9%84%EC%9A%A9%ED%95%A8%EC%88%98Cost-Function-%EC%86%90%EC%8B%A4%ED%95%A8%EC%88%98Loss-function-%EB%AA%A9%EC%A0%81%ED%95%A8%EC%88%98Objective-Function-Ai-tech 비용함수(Cost Function), 손실함수(Loss function), 목적함수(Objective Function) | Ai-tech 해당 포스트의 내용을 이해기 위해서는 머신러닝/딥러닝의 구현 원리의 기본은 이해하고 있어야합니다.비용함수, 손실함수, 목적함수에 대한 정의를 계속해서 잊게된다.머신러닝과 딥러닝 알 velog.io https://velog.io/@worudjk/PyTorchstep2-loss-functions [PyTorch]step2: loss functions loss functions velog.io (+ 최적화(Optimization)란 딥러닝 모델의 학습 과정에서 모델의 가중치와 편향을 업데이트하여 ‘손실함수(loss function)’를 최소화하는 과정 ) 그러면 아래 과정이 이해가 간다. LOSS_fn 을 최소화 하기 위해서 loss.backward() 로 각 gradient ( 가중치) 를 계산하고 ( 왜 loss.backward() 냐고 한다면 loss가 손실함수기 때문에 이를 타고 backward 함으로써 역방향으로 계산한다) 그다음에 optimizer.step() 을 통해서 loss 를 최소화 하는 과정을 거치면 되는 것이다. < loss function 과 optimizer > 둘은 다른거다.. ch5 – 3 에서 확인할 수 있는데 params = torch.tensor([1.0, 0.0], requires_grad=True) learning_rate = 1e-2 optimizer = optim.SGD([params], lr=learning_rate) t_p = model(t_un, *params) loss = loss_fn(t_p, t_c) # Loss = (t_p – t_c) **2 . mean() optimizer.zero_grad() # <1> 초기화 loss.backward() # backward -> grad 계산 optimizer.step() # grad 계산을 바탕으로 -> params 업데이트 params 여기서 loss function 과 optimizer 는 따로 존재한다. loss funciton 은 제곱차의 평균 optimizer 로는SGD 를 사용했다. 또 loss.backward() 로는 grad 를 계산하고 ( 그니까 편미분한 값들 ) *단, grad 들을 구하기만한다. 실제로 반영은 optimizer 를 통해서 진행한다. optimizer.step() 을 통해서 그것들을 optimizer 수식을 통해서 params 들을 업데이트한다 (w = w – learning_rate * 편미붅값 ) 을 실제로 실행해 params 들의 값을 직접 바꿔준다. 손실 함수(Loss Function)와 최적화(Optimizer) (tistory.com) <<4줄요약>> 1. 순방향 계산 ( t_p = model() ) 2. 최종 Loss 식 계산 ( loss = loss_fn() ) –> 여기서 의미를 좀 잘 모르겠음. 최종 loss 가 무슨 의미가 있는건지?.. 그냥 loss 계산식을 적어 놓으면 되는게아닌가? ( 그니까 loss function 을 ?? ) 3. loss.backward() 로 requires_grad =True 인 텐서에 대해서 모든 gradient 계산 * 여기서 내가 처음에 구현할 때 params.backward() 라고 헷갈렸는데. gradient 를 계산할때 loss.backward() 를 해주야함 아마 2번에서 의미가 헷갈려서 여기까지 온 듯 한데 . (이에 대한 해답) backpropagation에서 gradient를 계산하는 첫 starting point가 되는 값이 loss 값임을 알고 있을 것이다. 그리고 우리는 이 loss값을 모든 가중치들(parameters; weight and bias)에 대해서(with respect to) 미분을 계산하게 된다. 더 자세한건 여기서 참고하기 https://velog.io/@jkl133/pytorch%EC%9D%98-autograd%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90 https://tutorials.pytorch.kr/beginner/blitz/neural_networks_tutorial.html 4. gradient 계싼을 바탕으로 params 업데이트 ( optimizer.step() ) sigmoid vs ReLU https://space-cho.tistory.com/4 ReLU를 사용하는 이유 머신러닝 기초공부를 정리를 어떻게 할까 생각하고있었는데, 마침 보이저엑스 남세동대표님이 딥러닝개발자에게 묻는 면접질문을 페북에 포스팅해주셨다. 딥러닝을 업무에 이용하고는 있었지 space-cho.tistory.com nn.module -> super().__init__() ? https://seungseop.tistory.com/7 [Deep Learning] Pytorch의 nn.Module 이해하기 nn.Module을 상속받는 클래스에서의 forward() 함수 토치에서 모델을 만들 때, 다음과 같은 형태로 모델을 만든다. PyTorch 내장 모델과 사용자 정의 모델 모두 이 형태로 만들어야 한다. 1. torch.nn.Module seungseop.tistory.com https://daebaq27.tistory.com/60 [Pytorch] nn.Module & super().__init__() 우리는 pytorch에서 각자 레이어 혹은 모델을 구성할 때, nn.Module을 상속받는다. 왜 상속을 받을까? 또 상속받을 때, super().__init__()은 왜 해주는 것일까? 해당 코드를 작성함으로써 어떤 속성을 갖게 daebaq27.tistory.com – pg.220 hook 관련 이해돕기 https://ohsy0512.tistory.com/27 [Pytorch 기본]hook(pre forward hook, forward hook, backward hook) 1. Hook hook이란 패키지를 만드는 코드에서 중간에 원하는 코드를 삽입할 수 있는 기능이다. 순전파 이후에 모델의 가중치를 변경하거나, 파라미터 업데이트를 실시간으로 확인하는 등, 내 입맛대 ohsy0512.tistory.com 읽고난뒤 생긴 의문점 : Tensor 에는 왜 forward hook 이 구현되어 있지 않은가? – Softmax 의 loss 는 뭘 쓰나 1. Negative Log Liklihood https://airsbigdata.tistory.com/202 [ML/DL] softmax와 negative log-likelihood 신경망 구축 과제에서 Loss 부분을 작성하는데 아래와 같은 Total Loss에 대한 정의가 있어 이 부분을 이해하고자 softmax와 log-likelihood에 대한 이해를 하고 넘어가고자 합니다. negative log-likelihood에 대 airsbigdata.tistory.com 2. cross entropy loss https://velog.io/@rcchun/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%ED%81%AC%EB%A1%9C%EC%8A%A4-%EC%97%94%ED%8A%B8%EB%A1%9C%ED%94%BCcross-entropy [머신러닝] 크로스 엔트로피(cross entropy) 엔트로피는 불확실성의 척도로 정보이론에서의 엔트로피는 불확실성을 나타내며 엔트로피가 높다는 것은 정보가 많고 확률링 낮다는 것을 의미합니다이런 설명과 수식으로는 처음에는 와닿지 velog.io 설명이 너무 깔끔해서 이해가 잘된다. 3. SGD 와 배치사이즈 간에 관계 4. Q: Loss function 이 여러개면 어떻게 될까? A: Multi-Task Learning(MTL) 이라는 방법을 사용한다. Translation invariance https://ganghee-lee.tistory.com/43 https://seongkyun.github.io/study/2019/10/27/cnn_stationarity/

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다