pytorch 11

[Wandb] Wandb 사용법 + Sweep with Pytorch

Contents Weight & Biases Wandb (Weight & Biases)는 MLOps 플랫폼이며, 딥러닝을 학습하기 위해 필요한 기능들을 제공한다. wandb.ai 에서 회원가입을 하게 되면 API 키를 발급받을 수 있다. 해당 API를 통해 wandb에 login하면 사용할 수 있다. pip install wandb wandb.login() Wandb init Wandb를 사용하기 위해서는 처음에 init을 설정해주어야 한다. 기본적으로 하이퍼 파라미터(Hyper-Paramters)들은 Yaml로 관리하는 것이 편하기 때문에 아래와 같이 사용했다. learning_rate: 1e-5 batch_size: 64 epochs: 10 import yaml def load_yaml(path): ..

Python 2023.12.21

[부스트캠프 AI Tech NLP] 네이버 부스트 캠프 2주차 회고

Contents PyTorch PyTorch 기초 문법 등을 다루고, PyTorch를 통한 다양한 예제를 다루었다. 딥러닝을 학습하기 위해 필요한 DataLoader, Dataset, Collate_fn 등의 함수를 세부적으로 뜯어보고, PyTorch에 있는 함수 등을 상세하게 다루었다. Numeric Data, Unstructured Data (이미지, 자연어 처리) 등 전체적으로 다루는 것 같다. 아직 세부 트랙별 과제로 나온게 아니라 모든 데이터에 대해서 다루는 것 같다. 추가적으로, Wandb, TensorBoard, Ray 등 모델 학습 관리에 있어 필요한 모델들에 대해서 배우고, 분산 처리, 최적화 등과 관련된 모델에 대해서도 배워서 나중에 많은 도움이 될 것 같다.

[Pytorch] pytorch에서 value count 하는 법

Pandas 내에는 value_count() 라는 함수를 통해 데이터 프레임 내의 값을 카운팅 할 수 있다. Numpy 에서는 collection.Counter 등의 함수를 이용하여 몇 개가 있는지를 확인할 수 있다. Pytorch에서는 bincount라는 함수로 대체할 수 있다. import torch samples = torch.tensor([1, 1, 2, 1, 3, 3, 3], dtype=torch.long) torch.bincount(samples) # tensor([0, 3, 1, 3]) samples.dtype # torch.int64 당연하게도, LongTensor 인 경우에만 가능하다. FloatTensor의 경우 갯수를 확인하는 것이 불가능하기 때문에, LongTensor로 제대로 데이..

Python/Pytorch 2023.06.30

[Pytorch] RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling

CUBLAS_STATUS_NOT_INITIALIZED 에러는 nn.Embedding에 원래 값보다 큰 값이 들어갔을 때 발생하는 에러다. 예를 들어, 사용자의 수는 100명이고, 제품의 수는 50개라고 하자. 그렇다면 아래와 같은 코드로 nn.Embedding을 생성할 수 있을 것이다. class Model(nn.Mudule): def __init__(self, num_users, num_items, latent_dim): self.num_users = num_users self.num_items = num_items self.latent_dim = latent_dim self.user_embedding = nn.Embedding(self.num_users, self.latent_dim) self.ite..

Python/Pytorch 2022.12.05

[Pytorch] BERT로 감성 분석하기. 기초 설명까지

Contents BERT(Bidirectional Encoder Representation from Transformers)는 Transformer를 기반으로 양방향 학습을 하는 사전학습 모델이다. 사전학습 모델이란 미리 사전에 많은 양의 코퍼스를 학습하고, 그 후 파인튜닝(Fine-tuning)을 통해 본인이 사용하고자 하는 도메인에 적용하는 모델이다. Transformer가 나오기 이전에도 Bi-LSTM 등과 같이 양방향 학습 모델이 존재했지만, 사전 학습 모델은 아니었으며, BERT는 Self-supervised Learning 중 하나인 Making 기법을 사용하여 학습의 성능을 향상시키고, 지금까지도 많이 사용된다. 이번 글에서는 BERT를 사용하는 방법에 대해서 알아보고, 각 코드가 어떤 의미..

Python/Pytorch 2022.12.03

[Pytorch] Learning Rate Scheduler 사용하기

Contents 학습률(Learning Rate)은 모델을 학습하기 위해서 필수적인 요소다. 학습률을 너무 크게 설정한다면, 최솟값에 도달하는 것이 어려우며, 너무 작게 설정하면, local minimum에 빠지거나 학습에 진전이 없을 수 있다. 이번 글에서는 학습률에 Schedular를 설정해서 학습률을 감쇠(Decay)하는 패키지를 다루어볼 것이다. Import Packages import torch import torch.nn as nn from torch.optim.lr_scheduler import StepLR import torch.optim as optim from torch.utils.data import DataLoader import torchvision.transforms as tra..

Python/Pytorch 2022.11.17

[Error] module 'scipy.sparse' has no attribute 'coo_array'

networkx를 사용해서 그래프를 그리려고 하면 module 'scipy.sparse' has no attribute 'coo_array' 이 에러를 마주치는 경우가 발생할 수 있다. 해당 에러가 출력되는 원인은 다양한데 첫 번째로는 scipy의 버전이 다르기 때문이다. 1. scipy == 1.8.0 `coo_array`는 scipy==1.8.0 version에만 존재하기 때문에 먼저 version을 맞춰주자. 2. networkx == 2.7.1 networkx의 version도 맞춰주자 3. pyg-nightly PyG를 upgrade해서 변환해보자. pip install pyg-nightly

Python/Pytorch 2022.06.23

[Pytorch] LSTM(Long Short-Term Memory) 코드 구현

Contents LSTM (Long Short-Term Memory)은 RNN (Recurrent Neural Network)가 가지고 있는 장기 의존성 문제(long term dependency)를 해결하기 위해 제안된 모델이다. hidden state $h_t$와 cell state $c_t$로 구성되어 있으며, $h_{t-1}$은 t-1번째 Layer의 hidden state를 의미한다. $h_0$은 초기 hidden state를 의미하며, 0으로 설정한 후 학습을 진행한다. \[ \begin{equation} \begin{split} i_t & = \sigma(W_{ii} x_t + b_{ii} + W_{hi} h_{t-1} + b_{hi} ) \\ f_t & = \sigma ( W_{if} x_..

Python/Pytorch 2022.06.17

[Pytorch] Pytorch 에서 모델 요약 보기 with torchsummary

tensorflow 같은 경우에는 model.summary()를 통해서 간편하게 모델의 정보를 확인할 수 있다. 그렇다면 PyTorch에서는 불가능할까? 아니다!! Torch도 torchsummary를 지원해주고 있기에, torchsummary를 설치하면 확인할 수 있다. 확인하기에 앞서 우리는 이런 구조의 간단한 CNN을 만들 수 있을 것이다. 그런다음 아래의 코드를 실행하면 tensorflow의 model.summary()와 유사한 그림을 가지고 올 수 있다. from torchsummary import summary​ 각 layer의 output shape와 각 parameter에 대한 정보도 다 나온다. 또한 용량까지 나오니 엄청나게 좋다..! 한가지 단점이 있다면 아래와 같이 model의 inp..

Python/Pytorch 2022.04.18
반응형