Computer Vision/Pytorch

    [Pytorch] ONNX export할 때 RuntimeError: step!=1 is currently not supported 에러 해결 방법

    torch.onnx.export할 때 RuntimeError: step!=1 is currently not supported 에러 해결 방법 서론 아래 코드와 같이 모델을 onnx로 변환하고자 했는데 import torch import torch.onnx model = get_net(False) params = torch.load("/home/slrnd/test/00.work/BDD/YOLOP/runs/BddDataset/_2023-09-15-11-11/final_state.pth", map_location="cpu") model.load_state_dict(params) model.cpu() params = model.state_dict() torch.save(params, "./net.prm", pi..

    [Error] AttributeError: module 'torch.nn' has no attribute 'Conv2D' 해결 방법

    멍청한 실수를 했지만.. 반복하지 않기 위해 기록하고자 한다. AttributeError: module 'torch.nn' has no attribute 'Conv2D' 속성에러 : torch.nn이라는 모듈에는 Conv2D라는 속성이 없다. 이상하다.. 분명히 고쳤는데 왜 안될까...라고 생각하고 디버깅을 했다. (pointwise가 틀렸다고 나와있는데도 못 알아차렸다..) class Depthwise(nn.Module): def __init__(self, in_channels, out_channels, stride=1): super().__init__() self.depthwise = nn.Sequential( nn.Conv2d(in_channels, in_channels, 3, stride=stri..

    [Pytorch] 제공된 데이터 불러오는 방법 (feat. CIFAR10)

    Pytorch에는 여러 데이터를 제공합니다. (mnist, cirfar... 등등) 그래서 파이토치에서 제공하는 데이터들을 불러와서 전처리하는 시퀀스가 어떻게 되는지에 대한 숲과 나무를 보는 포스팅을 하고자합니다. 여러 데이터들 중에서 CIFAR10을 불러오는 코드를 하나하나 분석하면서 실습 하겠습니다. 현업에서는 이렇게 정제되어있는 데이터셋을 사용하지 않고 커스텀 데이터 셋을 사용하지만, 일련의 시퀀스를 경험한 뒤에 커스텀 데이터 셋을 load하고 변환시키는 것이 효율적인 학습 방법이라고 생각합니다. 전체코드 import torch import torchvision import torchvision.transforms as tr from torch.utils.data import DataLoader, ..

    [Pytorch] 튜플 안에 텐서와 정수형, Tensor and int in tuple

    Pytorch Fashion MNIST 공부하면서 궁금한 점. 해결. figure = plt.figure(figsize=(9,9)) # plt.figure()는 맨 처음 나오는 경우가 많은데, figure()은 figure인스턴스를 생성하는데 그 역할은 이미지 전체의 영역을 확보하는 것이다. cols, rows = 3,3 for i in range(1, cols * rows + 1): #1부터 (3*3+1 -1)=9까지 반복 sample_idx = torch.randint(len(training_data), size=(1,)).item() #torch.randint = 주어진 범위 내의 정수를 균등하게 생성, 자료형은 torch.float32 img, label = training_data[sample_..

    [PyTorch & Numpy] 기본 텐서 다루는법의 차이점

    PyTorch 공부하다가 궁금해진 tensor들 공부하다가 계속 파고드는중에 찾은 나의 개념 오류를 정리하고자한다. 1. PyTorch Tensor Shape Convection 1.1 2D Tensor 1.2 3D Tensor 1.2.1 for Computer Vision (batch size, width, height) (배치사이즈, 너비, 높이) 1.2.2 for NLP (batch size, length, dim) (배치 사이즈, 문장 길이, 단어 벡터의 차원) 2. Numpy로 Tensor 만들기(벡터와 행렬 만들기) 2.1 1D with Numpy ndim : 몇 차원인지 shape : 크기 출력 import numpy as np t = np.array([0., 1., 2., 3., 4., 5..

    [PyTorch] GPU에 텐서 할당하기

    텐서를 생성할 때 device 옵션으로 cpu와 cuda(gpu)를 선택할 수 있다. (아래 사진 참조, cpu와 cuda(gpu) 말고도 opengl, opencl 등등 더 많은 옵션을 선택할 수 있는 듯 하다.) 주석 보면서 이해하자. import torch cpu_tensor = torch.zeros(2, 3, device = "cpu") # cpu로 설정한 2행 3열 영행렬을 cpu_tensor라는 변수에 저장. print(cpu_tensor) device = torch.device("cuda") # cuda(gpu)를 device라는 변수에 저장하고 gpu_tensor = cpu_tensor.to(device) # cpu에 올라간 텐서를 gpu로 옮기는게 to()다. print(gpu_tenso..