본문 바로가기

metacode

[Optimizer] 메타코드 강의 후기_챕터2: Pytorch Fundamentals - Loss 실습하기 저번 시간에 공부했던 Loss function 이랑 Optimization 방식들을 실제 실습으로 적용해보면서 공부하도록 하자.    4. Loss Function MSE Loss : Regression Task에 주로 사용하며, predict값 과 실제 output값의 차이를 제곱합으로 계산한다. import torch.nn as nn #nn.MSELoss() mse_loss = nn.MSELoss()pred = torch.randn(4,10)output = torch.randn(4, 10)mse_loss(pred, output) print(pred, output)  nn.NLLLoss() : Negative Log Likelihood Loss 실제결과와 예측 확률을 곱한 것을 더해서 로그를 씌운 것이.. 더보기
[Backpropagation] 메타코드 강의 후기_챕터2: Pytorch Fundamentals - Loss 최적화 - Gradient Descent 이번 시간에는 저번 시간에 이어 뉴럴 네트워크 학습에 대해 공부해봅시다. 저번시간에 Loss 의 정의와 Loss Function들을 배웠는데, 이번 시간에는 그 Loss를 어떻게 줄여나가야 하는지, 그 방식으로 Gradient Descent 와 Backpropagation에 대해 배워봅시다.   Loss를 줄이는 것이 목표라면... 어떻게 최적화해야할까요?  ex ) 산 정상에서 빨리 내려오려면 모든 곳에 발을 뻗어서 기울기가 가파른 방향으로 가야할 것이다. 이 행동을 매번 반복해서 더 이상 뻗을 곳이 없을 때가 minimum 에 도달해서 도착한 것이다.  - Gradient : 기울기 - Descent : 하강 - 주어진 Loss Function의 최소값을 찾아가는 알고리즘이다- 결국 weight ( .. 더보기
[Loss Function] 메타코드 강의 후기_챕터2: Pytorch Fundamentals - Loss Function 이번 시간에는 1. Loss Function : MSE, Cross Entropy 에 대해 배워본 후  다음 시간에는 2. Loss 최적화 : Gradient Descent, Backpropagation에 대해 배워보자.  1. Loss Function : MSE, Cross Entropy Loss 란....- == Error 라고도 불리며, 예측값과 실제값의 차이를 가리킨다. - 이 차이를 계산하는 함수를 loss function이라고 부른다.- 모델 학습의 목적은 궁극적으로 Loss function == Objective Funcion을 최소화하는 가중치 p 를 찾는 것이다. - MSE는 Regression output이 연속형일 때 쓰인다. - Cross Entropy는 Classification .. 더보기
[Linear Layer] 메타코드 강의 후기_챕터2: Pytorch Fundamentals - Neural Network - Matrix Multiplication 저번시간까지 텐서 이론 + 실습을 했다면 이번 시간에는1. Matrix Multiplication, 2. Neural Net : Linear Layer 에 대해 공부해보도록 하자.    1. Matrix Multiplication - R은 차원 T는 transformM은 matrix - 절댓값을 씌워서 차원을 표시하기도 함- 콤마 뒤에 1은 생략 가능하다  - 쉐입이 같아야 연산 가능하다.    배치 -> 묶어서 한다. Batch Matrix Multiplication(BMM)은 같은 개수의 행렬 쌍들에 대해서 병렬로 행렬 곱을 실행한다.   인풋 벡터에 웨이트가 곱해져서 하나의 아웃풋 벡터가 나오는데이걸 N번 하는 것보다 한번으로 처리해버리면 속도가 빨라지기 때문에 배치학습을 사용하는 것이다.  실제로.. 더보기
[Tensor] 메타코드 강의 후기_챕터2: Tensor 다루기 part 3 4. Indexing원하는 원소나 영역을 특정 부분 뽑고 싶을 때 index를 이용하여 선택기존의 numpy, pandas의 indexing과 유사!! ex) a = torch.tensor([[1,2,3],[4,5,6],[7,8,9]])a[1][2] ==> 결과 tensor(6) 5. Shaping Operation : reshape, squeeze/unsqueeze, stack, cat텐서의 shape, dimension을 조절하는 방법여러개의 텐서를 합치는 방법Tensor.reshape()모양을 변경할 수 있음원래 사이즈를 구성하는 각 차원 별 길이의 곱으로 표현 가능하다면 변경 가능Tensor.shape 이 [x, y] 라면, 총 input size인 x*y의 값으로 표현할 수 있는 차원의 조합이면.. 더보기
[Tensor] 메타코드 강의 후기_챕터2: Tensor 다루기 part 2 2. Attribute : shape, dtype, device앞서 만들어진 텐서가 어떤 모양인지, 어떤 데이터 타입인지, 어떤 디바이스(cpu, gpu)로 연결되었는지 확인할 수 있는 명령어들을 배우고자 한다.  1) Tensor.shapeex) b = torch.ones([3,4,5,5])      b.shape {[(5,5) 메트릭스] x 4개} 3개 2) Tensor.dtype텐서 안에는 무조건 같은 데이터타입 사용하기.  ex) a.dtype ==> 결과torch.int64  # pytorch 자료형 참고 float_tensor = torch.ones([3, 5, 5], dtype=torch.float)  #dype을 float으로 하겠다고 미리 선언double_tensor = torch.one.. 더보기
[파이토치] 메타코드 강의 후기_챕터2: Tensor 다루기 part 1 [ Tensor 다루기 - part 1 ] 강사님이 제공해주신 실습 파일을 Google Colab에 업로드하고 수업을 들으면 된다. 먼저 torch를 설치해야하므로 ! pip install torch ( !는 운영환경에서 실행되는 코드라는 의미 ), 코랩은 생략해도 됨 Tensor : Numpy의 배열과 유사한 자료형으로 다차원의 행렬. 사용하는 방법도 Numpy와 비슷하다. scalar : 상수, 하나의 값을 표현한다. vector : 여러개의 값을 가진 1차원의 데이터 matrix : 행렬, 행과 열로 이루어진 2차원의 데이터 tensor : n차원의 행렬 형태로 표현된다. scalar는 0차원 vector는 1차원, matrix는 2차원 텐서라고 할 수 있다. 차원은 축이 몇개냐로 판단한다. 가로 .. 더보기
[파이토치] 메타코드 강의 후기_챕터1: Orientation [인사/강좌 소개] Pytorch 란? • 딥러닝, 머신러닝을 위한 오픈소스 프레임워크 • Python 기반의 과학 계산 패키지인 torch를 기반으로 개발 • 텐서 연산과 자동 미분을 위한 기능을 제공하여 신경망 모델의 구성, 학습, 추론을 쉽게 구현 Pytorch 의 장점 • 설치가간편 • 이해와 디버깅이 쉬운 직관적이고 간결한 코드로 구성 • Define by Run 방식을 기반으로한 실시간 결과값을 시각화 • Python Library(Numpy, Scipy, Cython)과의 높은 호환성 • 모델그래프를만들때고정상태가아니기때문에언제든지데이터에따라조절이가능 • Numpy와 비슷한 Tensor 연산이 GPU로도가능 현재 텐서플로우만 사용하고 있었는데, 이 강의를 통해서 파이토치로 딥러닝 모델 학습을.. 더보기