목록전체 글 (222)
꺼내먹는지식 준
Torch Math Operations 다음의 같은 항목으로 구성되어있다. 1) Pointwise Ops 2) Reduction Ops 3) Comparison Ops 4) Spectral Ops 5) Other Operations 6) BLAS and LAPACK Operations Utilities 1) Pointwise Ops 말그대로 Point-wise 연산처리 관련 함수 간단하게 3개만 살펴보자. sigmoid erf trunc A = torch.tensor([1,2,3,4,5,99]) torch.sigmoid(A) #tensor([0.7311, 0.8808, 0.9526, 0.9820, 0.9933, 1.0000]) torch.erf(A) #tensor([0.8427, 0.9953, 1.000..
Torch.is_tensor( x ) $\rightarrow$ Boolean x 가 tensor 인지 확인 후, Boolean Return torch.numel(x) element 개수 Return # len(x) 는 차워에 따라 값이 바뀌므로 사용할 수 없다. https://pytorch.org/docs/stable/torch.html#tensors Torch.Tensor는 다음의 세부 항목으로 분류 된다. - "Creation Ops" - "Indexing, Slicing, Joining, Mutating Ops" 1) Creation Ops : Tensors"라는 자료구조를 만드는 함수들 대표 예제 3가지 from_numpy zeros zeros_like import torch import nump..
torch.index_select(input, dim, index, *, out=None) → Tensor Torch Indexing 1) numpy indexing 기법 2) torch.index_select A = torch.Tensor([[1, 2], [3, 4]]) A[:,0] #1,3 A[:][0] # 1,2 == A[0] torch.index_select(A, 1, indices) #[[1.], [3.]] output.squeeze(1) # [1., 3.] torch.index_select 엄청 번거롭다. 3) torch_gather torch.gather(input, dim, index, *, sparse_grad=False, out=None) → Tensor output = torch.ga..

딥러닝에서 가장 중요한 요소는 바로 대용량 데이터이다. 모델도 중요하지만, 결과를 결정짓는건 결국 데이터라고 말을 할 정도다. Pytorch에서는 대용량 데이터를 잘 처리해주는 Dataset API 를 제공한다. Dataset Feeding 과정에 대한 정리 1. 데이터의 전처리는 두가지 과정으로 나뉜다. 1) 데이터 수집, 다룰 수 있도록 처리 2) ToTensor 즉, 숫자로 변환 2. Dataset 어떻게 시작하고, 길이를 반환하고, item을 call 했을 때 어떻게 반환해줄건지에 대한 것을 정한다. 3. DataLoader를 통해 batch 크기, shuffle 여부, 등등을 정한다. 4. Model에 투입 Dataset 클래스 데이터 입력 형태를 정의하는 클래스 데이터 입력 방식 표준화 Ima..

딥러닝에서 layer를 흔히 레고 블럭에 많이 비유한다. 레이어를 정의한 후, 연결하여 정보를 다음 단계로 넘기는 과정이 마치 레고를 연속적으로 붙이는 것과 유사해서이다. 블록 반복의 연속 대표적으로 Transformer만 보아도, Multi-head attention ... Linear, Soft Max 등의 각각의 레이어, 그리고 레이어들이 합쳐져서 하나의 큰 블록을 형성한 레이어들이 합쳐진 구조이다. Torch.nn.Module 딥러닝을 구성하는 Layer의 base class 기본적으로 정의해야하는 4가지 1) Input 2)Output 3)Forward 4)Backward 정의 학습의 대상이 되는 parameter(tensor) 정의 (Backward Weight) nn.Parameter Ten..

SW Expert Academy 6109 문제. 추억의 2048게임 문제링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWbrg9uabZsDFAWQ 문제 입력: 각 테스트 케이스의 첫 번째 줄에는 하나의 정수 N(1≤N≤20)과 하나의 문자열 S가 공백 하나로 구분되어 주어진다. S는 “left”, “right”, “up”, “down”의 넷 중 하나의 값이 주어지며, 각각 타일들을 왼쪽, 오른쪽, 위쪽, 아래쪽으로 이동시킨다는 뜻이다. 다음 N개의 줄의 i번째 줄에는 N개의 정수가 공백 하나로 구분되어 주어진다. 이 정수들은 0이거나 2이상 1024이하의 2의 제곱수들이다. i번째 줄의 j번째 정수는 격자..

Pytorch Project Template Overview 1) 초기 단계에서는 대화식 개발 과정이 유리 $\rightarrow$학습과정과 디버깅 등 지속적인 확인 2) 베포 및 공유 단계에서는 notebook 공유의 어려움 $\rightarrow$ 쉬운 재현의 어려움, 실행 순서 꼬임 3) DL 코드도 하나의 프로그램 $\rightarrow$ 개발 용이성 확보와 유지보수 향상 필요 레고 블럭 처럼 OOP + 모듈 $\rightarrow$ 프로젝트 다양한 프로젝트 템플릿 존재 사용자 필요에 따라 수정하여 사용 실행, 데이터, 모델, 설정, 로깅, 지표, 유틸리티 등 다양한 모듈들을 분리하여 프로젝트 템플릿화 즉, 한마디로 개발할 때는 대화식 개발로 디버깅하며 모델을 구축하고, 추후 배포와 유지보수를 위..

Pytorch의 강점 1) Numpy 2) AutoGrad 3) Deep Learning을 지원하는 다양한 함수와 모델 Tensor 다차원 Arrays를 표현하는 Pytorch 클래스 사실상 numpy의 ndarray와 동일 1) Tensor를 생성하는 함수도 거의 동일 import numpy as np n_array = np.arange(10).reshape(2,5) import torch t_array = torch.FloatTensor(n_array) 결과 tensor[[0., 1., 2., 3., 4.] [5., 6., 7., 8., 9.]] shape(2,5) data to tensor , ndarray to tensor data = [[3,5],[10,5]] x_data = torch.tens..

립러닝 프레임 워크는 양분되어있다. Pytorch Tensorflow :두개 프레임워크의 가장 큰 차이는 컴퓨태이셔널 그래프 표현 방식이다. Computational Graph 연산 과정을 그래프로 표현 Pytorch는 실행시점에서 그래프를 그리는 반면, Tensorflow는 static 하게 그래프를 그린 후에, 실행 시점에서 backward propagation이 일어난다. Pytorch Numpy + AutoGrad + Function(다양한 형태의 DL 지원 함수와 모델)

비선형 모델 신경망 Fully conneceted layer 화살표: 가중치(W) 선형 모델에 해결하고자 하는 문제에 따라 다른 비선형 활성화 함수가 적용된다. 분류(주어진 데이터가 특정 클래스에 속하는지) 문제를 해결할 경우 softmax 가 필요하다. softmax 소프트맥수 함수는 모델의 출력을 확률로 해석할 수 있게 변환해주는 연산 $\textrm{softmax}(o) = \textrm{softmax(Wx + b)}$ 출력값을 통과시키면 확률벡터를 얻을 수 있다. 특정 클래스에 속할 확률을 파악하고, 분류문제를 풀 수 있다. 추론시에는 최대값만 1로 출력하는 one-hot vector 를 사용한다. ex)[0.3, 0.1, 0.1, 0.1, 0.1, 0.2] $\Rightarrow$ [1, 0, ..