일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 웹스크래핑
- recommendation system
- 백준
- SGD
- 데이터
- 파이썬
- 코딩테스트
- 프로그래머스
- 딥러닝
- Overfitting
- 추천 시스템
- 시각화
- wordcloud
- 협업 필터링
- selenium
- Python
- 데이터 엔지니어링
- 코테
- 부스트캠프
- Tensor
- codingtest
- 추천시스템
- coursera
- TF-IDF
- 분산 시스템
- pytorch
- 웹크롤링
- 알고리즘
- 머신러닝
- Cosine-similarity
- Today
- Total
목록AI/Pytorch (12)
개발자식

Pytorch Lightning - 배경: 딥러닝에서의 많은 엔지니어링 코드는 모델이 달라져도 역할이 비슷한 경우가 많다. 그래서 공통된 부분들을 반복해서 작성할 필요 없이 유연하게 커스터마이징하여 실험할 수 있는 라이브러리가 필요했다. 이것이 Pytorch Lightning이다. Pytorch는 어땠는데? - DataLoader 구성, Model 구성, Backpropagation + weight update, 전체 코드를 실행하는 main 스크립트 이렇게 정리할 수 있다. 전처리 하는 과정을 제외하고. - 이는 task나 데이터가 변경되면 코드를 재사용하기 어렵다. 이를 코드로 비교해 보면 다음과 같다. Pytorch로 코드를 구현해 본 사람이라면 어느 정도 어떻게 바뀌었는지 느낌이 올 것이다. Da..

행렬 곱셈과 곱셈의 차이(Matrix Multiplication Vs. Multiplication) 행렬로 곱셈을 하는 방법은 크게 두 가지가 있다. 바로 행렬 곱셈(.matmul)과 원소 별 곱셈(.mul)이다. 행렬 곱셈 - 1차원 벡터 - .dot()을 활용하여 계산한다. - tranpose 하지 않아도 계산 됨 행렬 곱셈 - matrix - 기본적으로 모양이 맞아야 한다. - (m x k) · (k x n) = (m x n) 아다마르 곱 (element-wise product) - 두 벡터의 Hadamard 곱은 행렬 덧셈과 유사하며, 주어진 벡터/행렬의 동일한 행과 열에 해당하는 요소를 곱하여 새로운 벡터/행렬을 형성한다. - 압축 기술에 사용된다. - 곱할 행렬/벡터의 순서는 같아야 하며 결과..

torch.nn.RNN() Pytorch RNN API 제공 입력 시퀀스의 각 요소에 대해 각 계층은 아래의 함수를 꼐산한다. Parameters input_size: Input의 사이즈에 해당 하는 수를 입력하면 됩니다. hidden_size: 은닉층의 사이즈에 해당 하는 수를 입력하면 됩니다. num_layers: RNN의 은닉층 레이어 개수를 나타냅니다. 기본 값은 1입니다. nonlinearity: 비선형 활성화 함수를 선택합니다. tanh, relu중 하나를 선택 가능하며, 기본 값은 tanh입니다. bias: 바이어스 값 활성화 여부를 선택합니다. 기본 값은 True 입니다. batch_first: True일 시, Output 값의 사이즈는 (batch, seq, feature) 가 됩니다. ..

파이토치에서 임베딩 벡터를 사용하는 방법 임베딩 층을 만들어 훈련 데이터로부터 처음부터 임베딩 벡터를 학습하는 방법 미리 사전에 훈련된 임베딩 벡터들을 가져와 사용하는 방법 여기서 첫 번째 방법으로 구현하려면 nn.Embedding()를 사용한다. nn.Embedding은 크게 두 가지 인자를 받는데 각각 num_embeddings과 embedding_dim입니다. num_embeddings : 임베딩을 할 단어들의 개수. 다시 말해 단어 집합의 크기입니다. embedding_dim : 임베딩 할 벡터의 차원입니다. 사용자가 정해주는 하이퍼파라미터입니다. padding_idx : 선택적으로 사용하는 인자입니다. 패딩을 위한 토큰의 인덱스를 알려줍니다.
torch.sum() - input 텐서에 있는 모든 요소의 합계를 반환한다. - dim 으로 차원을 압축할 수 있다. a = torch.tensor([[ 1, 2, 3],[ 4, 5, 6]]) #(2,3) #dim = 0 b = torch.sum(a, dim = 0) #dim = 1 c = torch.sum(a, dim = 1) print(b) print(c) Output: tensor([5, 7, 9]) tensor([ 6, 15]) 여기서 dim을 tuple 형태로 넣을 수 있다. tuple로 넣으면 차례대로 계산한다. x = torch.rand(256, 10, 8) print(torch.sum(x, dim=(2)).shape) print(torch.sum(x, dim=(2,1)).shape) Ou..

torch.stack함수란 stack함수는 지정하는 차원으로 확장하여 tensor를 쌓아주는 함수이다. tensor를 쌓아주는 함수이기 때문에 두 tensor의 차원이 정확히 일치해야 쌓을 수 있다. (default=0) -> 새로운 차원으로 주어진 텐서들을 붙인다. Stack함수의 시각화 코드로 봐보자! batch_size, N, K= 256, 8, 10 temp = list() x = torch.rand(batch_size, N, K) # [M, N, K] y = torch.rand(batch_size, N, K) # [M, N, K] temp.append(x) temp.append(y) output = torch.stack(temp, dim=1) #[M, 2, N, K] print(x.shape,y..