Super Kawaii Cute Cat Kaoani '연구/PyTorch' 카테고리의 글 목록

연구/PyTorch 9

[PyTorch] tensor 확장하기: torch.expand vs torch.repeat vs torch.repeat_interleave

pytorch tensor를 사용하다보면 dimension을 늘려줘야하는 상황이 많이 발생한다. 이때 많이 사용하는 함수가 torch.expand, torch.repeat, torch.repeat_interleave이다. 상황마다 쓰기 편리한 함수들이 있는데 매번 까먹어서;; 내가 보려고 작성하는 비교 글이다. 1) torch.expand(*size) torch.expand 함수는 개수가 1인 차원에 대해서만 확장이 가능하며, desired size를 input으로 받는다. >>> x = torch.tensor([[1], [2], [3]]) >>> x.size() torch.Size([3, 1]) >>> x.expand(3, 4) tensor([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3..

연구/PyTorch 2024.02.21

[Pytorch] Dataloader와 Sampler

모든 pytorch의 dataloader는 sampler라는걸 가지게 된다. * RandomSampler DataLoader(dataset=train_dataset, shuffle = True, batch_size = 1) 위와 같이 shuffle=True로 세팅하게 되면 dataloader의 sampler는 자동으로 RandomSampler로 선택된다. 만약 RandomSampler가 아닌 내가 원하는 방식대로 동작하는 sampler를 따로 지정해주고 싶다면 shuffle= False로 세팅하여야한다. * SubsetRandomSampler shuffle=True일때는 전체 dataset에서 data를 andom하게 뽑게 된다. 만약 전체 dataset에서가 아닌 일부 subset에서 data rand..

연구/PyTorch 2023.10.07

[PyTorch] Tensor 조작법 기본) indexing, view, squeeze, unsqueeze

tensor 쓰는법이 안익숙해서 numpy array로 버티면서 코딩하다가..ㅋㅋㅎㅎ더이상 안될것같아 코드 전체를 tensor 기반으로 바꾸는 작업을 진행하게 되었다. 쓰다보면 당연히 체화되어 익숙해질테지만 그래도 어느정도는 공부하는게 좋지 않을까 싶어 tensor 조작법을 정리해보았다! 1) torch.Tensor()와 torch.tensor()의 차이 * torch.Tensor는 Tensor 자료구조의 클래스로, 이 클래스를 사용하면 클래스 인스턴스를 생성할 수 있다. T = torch.Tensor() 라고 입력하면 T는 Tensor 클래스의 인스턴스가 된다. T의 경우 data를 입력해주지 않았으니 빈 tensor가 된다. * torch.tensor는 어떤 data를 tensor로 copy해주는 클..

연구/PyTorch 2023.09.17

PyTorch로 AutoEncoder 구현하기

1. 개념요약 AutoEncoder는 앞부분을 Encoder, 뒷부분을 Decoder라고 부른다. Encoder는 정보를 받아서 이를 압축하고 Decoder는 압축된 정보를 복원하는 역할을 한다. AutoEncoder를 사용하면 필연적으로 정보의 손실이 일어나지만, 이는 불필요한 정보를 줄이고 필요한 정보만 남기는 데이터 가공이라고 볼 수 있다. 이렇게 불필요한 정보를 줄이는 AutoEncoder를 사용하면 복잡한 데이터의 차원을 줄일 수 있다. 따라서 AutoEncoder는 Input data의 feature를 추출할 때 많이 사용된다. 2. AutoEncoder 구현 import torch import torchvision import torch.nn.functional as F from torch ..

연구/PyTorch 2023.08.16

PyTorch DataLoader 사용하기 & epoch, batch, iteration 개념

PyToch DataLoader를 사용하는 방법 및 epoch, batch, iteration 개념에 대해 살펴보자. epoch, batch, iteration 개념 epoch: 전체 데이터 셋을 반복하는 횟수 전체 데이터셋으로 forward propagation(순전파)와 backward propagation(역전파)가 완료되면 1번의 epoch가 진행되었다고 보면 된다. 반복적인 학습을 통해 높은 정확도의 모델을 만들 수 있다. epoch 값을 너무 낮게 설정하면 underfitting, 너무 높게 설정하면 overfitting이 발생할 확률이 높아진다. batch size: forward와 backward에서 한번에 학습할 데이터 수 모델 학습 중 parameter를 업데이트 할 때 사용할 데이터 ..

연구/PyTorch 2023.08.03

Pytorch에서 TensorBoard 사용하기

머신러닝을 진행할 때, 네트워크가 어떻게 학습이 되고 있는지 확인하기 위해서는 loss 그래프 등을 확인할 필요가 있다. 이때 흔히 사용하는 것이 TensorBoard이다. Tensorboard는 다음과 같은 기능을 제공한다. 손실 및 정확도와 같은 측정항목 추적 및 시각화 모델 그래프(작업 및 레이어) 시각화 시간의 경과에 따라 달라지는 가중치, 편향, 기타 텐서의 히스토그램 확인 저차원 공간에 임베딩 투영 이미지, 텍스트, 오디오 데이터 표시 TensorFlow 프로그램 프로파일링 그 외 다양한 도구 그럼 Pytorch에서 Tensorbard를 어떻게 사용할 수 있을지 알아보자! 1. SummaryWriter 인스턴스 생성하기 import torch from torch.utils.tensorboard..

연구/PyTorch 2023.08.03

Pytorch로 dataset 구성하기

딥러닝 모델을 학습시키기 위해 가장 먼저 필요한 준비물은 "데이터"이다. 주어진 데이터를 효과적으로 활용하기 위해, pytorch에서는 Dataset 클래스를 제공하고 있다. pytorch의 Dataset 클래스를 활용해서 학습을 위한 데이터셋을 어떻게 만들 수 있을지 알아보자. step1. 클래스 정의 사용할 모듈은 다음과 같다. import os import torch from torch.utils.data import Dataset from PIL import Image import torchvision.transforms as transforms 커스텀 데이터셋을 만들기 위해 클래스를 만들어보자. class MyBaseDataset(Dataset): def __init__(self, x_data,..

연구/PyTorch 2023.07.27

Pytorch 사용해서 간단한 Neural Network 설계하기

https://tutorials.pytorch.kr/beginner/blitz/neural_networks_tutorial.html 신경망(Neural Networks) 신경망은 torch.nn 패키지를 사용하여 생성할 수 있습니다. 지금까지 autograd 를 살펴봤는데요, nn 은 모델을 정의하고 미분하는데 autograd 를 사용합니다. nn.Module 은 계층(layer)과 output 을 반환하는 for tutorials.pytorch.kr 위의 글을 보면서, 내가 이해하기 쉽게 정리한 내용이다. 난 정리하면서 이해하는 편이라...처음 보는 사람들은 위의 글을 참고하는게 더 이해가 쉬울듯하다. 1. Neural Network 설계 설계해볼 Neural Network는 숫자 이미지를 분류하는 신..

연구/PyTorch 2023.07.17
728x90
728x90