일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- LIST
- Python
- SSH
- Linux
- mysql
- VS Code
- Selenium
- C++
- pandas
- windows forms
- C#
- C
- Docker
- 컨테이너
- 채보
- pytorch
- 프로그래머스
- 오류
- pip
- 핑거스타일
- JSON
- Visual Studio
- error
- paramiko
- YOLO
- 기타 연주
- ubuntu
- label
- Numpy
- OpenCV
- Today
- Total
목록pytorch (8)
기계는 거짓말하지 않는다
Creating a tensor from a list of numpy.ndarrays is extremely slow.Please consider converting the list to a single numpy.ndarray with numpy.array()before converting to a tensor.Pytorch에서 List에 다수의 numpy.ndarray가 있을 경우 torch.tensor로 변환하는 경우 발생한다.이렇게 하면 성능이 저하될 수 있고, List를 단일 numpy.ndarray로 변환 후 tensor로 다시 변환하여야 한다.import numpy as npimport torchdef convert_to_tensor(list_of_arrays): # 리스트를 numpy..
Pytorch 모델 사용 시, 입력 텐서와 가중치 텐서의 데이터 유형이 서로 일치하지 않을 때 발생할 수 있는 오류이다. 아래는 오류 내용들이다. RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same or input should be a MKLDNN tensor and weight is a dense tensor RuntimeError: Input type (torch.cuda.HalfTensor) and weight type (torch.cuda.FloatTensor) should be the same ~ to() method를 이용해 같은 데이터 유형으로 만들어주면 된..
Pytorch를 이용한 Multiclass Classification Custom Data feature 5개, label 종류 6개로 이루어진 데이터. 각 label마다 기본 base 값을 토대로 무작위로 생성 (Total 1200개) import pandas as pd dataFrame = pd.read_csv("custom_random_data.csv", delimiter=","); # label 종류 별 feature 표준편차 확인 print(dataFrame.groupby("Name").std()) 표준편차가 큰 F3 feature를 제외한 나머지로 학습을 진행 Custom Dataset, Custom Model class CustomDataset(Dataset): def __init__(sel..
이미지 Augmentation을 할 때 사용할 수 있다. Augmentation은 데이터의 양을 늘리기 위해 원본에 각종 변환을 적용하고 데이터를 늘릴 수 있다. 동일한 이미지들을 조금씩 변형시켜가며 학습하면서 Overfitting을 방지하는 데 도움이 된다. 학습 용도에 맞는 augmentation을 선택해서 사용하여야 한다. 보통 Training 단계에서 많이 사용되지만 Test 단계에서도 사용이 가능하며, 이를 Test Time-Augmentation(TTA)이라고 함 Dataloader를 이용하여 받으면 channel, height, width(c, h, w) shape가 되며 img.cpu().numpy().transpose(1, 2, 0).copy()를 이용하면 OpenCV에서 사용할 수 있는..
PyTorch는 torch.utils.data.Dataset과 torch.utils.data.DataLoader의 두 가지 데이터셋 라이브러리를 제공하며 미리 준비된(pre-loaded) 데이터셋 뿐 아니라 가지고 있는 데이터를 사용할 수 있다. Dataset은 data와 label을 저장한다. DataLoader는 Dataset에 쉽게 접근할 수 있도록 iterable 객체로 만들어 주고 sampler, shuffle, batch_size 등 다양한 매개변수를 설정 할 수 있다. from torch.utils.data import Dataset from torch.utils.data import DataLoader class CustomDataset(Dataset): def __init__(self, ..
Pytorch에서 model을 선언 후 validation 혹은 test를 진행할 때 model.eval()과 with torch.no_grad(): 혹은 함수에 @torch.no_grad를 선언한다. 이 의미는 다음과 같다. no_grad Pytorch의 autograd engine을 사용하지 않는다. 신경망 학습을 지원하는 PyTorch의 자동 미분 엔진이다. 이것은 gradient 계산을 하지 않는다는 의미이다. 역전파(backpropagation)를 진행하지 않고 이렇게 함으로써 계산에 대한 메모리 소비를 줄인다. test 시에는 이 과정을 활용하지 않기 때문에 명시한다. model.eval() 선언한 모델을 평가 모드로 전환한다. training 시에 model.train()을 선언하는 것과 다..
import torch # torch version, gpu 사용 여부, 이름 체크 print("torch version>>", torch.__version__) print("GPU 사용 유무>>", torch.cuda.is_available()) print("GPU 이름>> ", torch.cuda.get_device_name(0)) ''' torch version>> 1.7.1+cu101 GPU 사용 유무>> True GPU 이름>> GeForce GTX 1650 ''' # device 설정. GPU 사용 가능 여부에 따라 device 정보 저장 device = "cuda:0" if torch.cuda.is_available() else "cpu" print(device) # cuda:0
import torch model = # 모델 생성 # 모델 저장 save_name = "model_final" torch.save(model.state_dict(), f"Directory/{save_name}.pth") # 모델 불러오기 load_name = "model_final" model.load_state_dict(torch.load(f"Directory/{load_name}.pth")) # 경로, 저장 모델 이름 # 설정 값 세부 저장 checkpoint = { 'model': model.state_dict(), 'optimizer': optimizer.state_dict(), 'lr_scheduler': lr_scheduler.state_dict(), 'epoch': epoch } torch..