분석 Python/Pytorch(28)
-
[Pytorch] torch 유용한 함수 정리하기
유용한 함수들을 발견하게 되면 정리해보기 개인적으로 중요하다고 생각하는 것에 ★ 표시 import torch import numpy as np Function 1 — torch.tensor t1 = torch.tensor([[21,39],[31,30],[23,43],[11,46],[26,46],[31,25],[21,38],[22,39],[22,19],[18, 14]]) t1 t2 = torch.tensor([]) t2 t2.size() Function 2 — torch.from_numpy a1 = np.array([[1,2,3],[4,5,6]]) a1.dtype t1 = torch.from_numpy(a1) t1.dtype Hight_Weight = np.array([[161,67],[154,76],[1..
2020.11.30 -
PyTorch Lighting + Ray tune
ray tune에 올라온 pyotch lighting으로 구현된 코드를 돌려봤는데, 문제가 생겨서 임시방편으로 막아놓은 코드를 공유한다. 일단 2가지가 안 되는 것을 확인했다. tune.with_parameters TuneReportCallback 위의 부분을 제거한 코드를 공유하겠다. TunerReportCallback 도 문제이고, tune.with_parameters는 뭔가 좋은 기능을 쓰지 못할 수도 있을 것 같다는 생각이 들지만 일단 공유 버그는 머 나중에 다 잡힐 것이라고 믿기 때문에 일단은 알아두기만 해야겠다! 패키지 설치 pip install "ray[tune]" # 1.0.0 pip install "pytorch-lightning>=1.0" pip install "pytorch-light..
2020.11.07 -
[TIP / Pytorch] torch class name 얻는 방법
torch class 이름을 얻고자 할 때, 삽질을 하였기 떄문에, 블로깅다른 사람들은 삽질을 덜 하셨으면 한다!layer = torch.nn.Linear(10,5) layer.__class__.__name__
2020.10.31 -
[TIP / Pytorch] calculate convolution output shae (conv2d , pooling) (Conv 아웃풋 값
기존 계산은 다음과 같음. 하지만 pytorch에서 convolution layer output shape를 계산식은 다음과 같음 함수 def cal_conv_output_shape_torch(h_w, layer): from math import floor dilation = layer.dilation kernel_size = layer.kernel_size stride = layer.stride pad = layer.padding if type(dilation) is not tuple: pass else : dilation = dilation[0] stride = stride[0] pad = pad[0] if type(kernel_size) is not tuple: kernel_size = (kerne..
2020.10.31 -
[TIP / Pytorch 1.5~] jit script, save, load
기존에 알다시피 Pytorch 같은 경우 아키텍처를 저장을 할 수가 없었다.torch.save를 이용해서 저장하면 에러가 생기는 문제가 있다.그래서 보통은 아키텍처를 좀 더 일반화해서 만들고, 파라미터를 넣은 다음에 학습된 가중치를 불러와서 모델을 로드하는 방식을 주로 사용한다. 참고 오늘은 우연히 발표를 듣다가 알게 된 사실을 공유한다.바로 torch.jit.save & load를 알게 된 것이다.내가 알기로는 아마 이것은 torch 1.6부터 나온 것으로 알고 있다.실제 애가 어떻게 저장을 하는지는 잘 모르지만, torch.jit.save를 사용하면, 가중치와 함께 아키텍처를 둘 다 저장할 수 있다! 그래서 일단 예제를 보자. 회귀 분석 예측을 아주 간단하게 해 보자.여기서의 목적은 가중치가 저장하기..
2020.10.29 -
[TIP / Installation] requirements.txt 로 pytorch package 설치하는 방법
보통 다른 패키지들은 아래와 같은 freeze를 이용해서 파일을 하나 생성하고 설치하면 정상적으로 설치가 된다. pip freeze > requirements.txt pip install -r requirements.txt 보통 requirements.txt 파일은 아래와 같이 생성된다. scikit-learn==0.23.2 scipy==1.5.3 seaborn==0.11.0 shap==0.36.0 six==1.15.0 slicer==0.0.4 statsmodels==0.12.0 tabulate==0.8.7 threadpoolctl==2.1.0 torch==1.6.0+cpu torchvision==0.7.0+cpu 하지만 이렇게 해서 설치를 하면, torch를 설치할 때 에러가 발생하게 된다. 그래서 검..
2020.10.25 -
[TIP / Pytorch] Linear NN Model base Architecture
pytorch가 arhcitecture가 저장이 안 되니, 본 판때기를 잘 만들어서 한 구조에서 여러개의 파리미터를 넣을 수 있도록 해야 한다. 여기서는 본 판때기에 대한 base를 만들어봄. from torch import nn class Net(nn.Module) : def __init__(self, layers , activation, bn, dropout) : super(Net,self).__init__() self.model = self.make_model(layers , activation, bn, dropout) def forward(self, x) : self.model(x) def make_model(self, layers , activation, bn, dropout) : model =..
2020.10.23 -
[Pytorch] Regression 관련 자료
heartbeat.fritz.ai/5-regression-loss-functions-all-machine-learners-should-know-4fb140e9d4b0 5 Regression Loss Functions All Machine Learners Should Know Choosing the right loss function for fitting a model heartbeat.fritz.ai medium.com/udacity-pytorch-challengers/a-brief-overview-of-loss-functions-in-pytorch-c0ddb78068f7 A Brief Overview of Loss Functions in Pytorch What are loss functions? How..
2020.09.29 -
[skorch] VAE 적용 구현해보기
base.py ( vae_models 폴더 안에) from .types_ import * from torch import nn from abc import abstractmethod class BaseVAE(nn.Module): def __init__(self) -> None: super(BaseVAE, self).__init__() def encode(self, input: Tensor) -> List[Tensor]: raise NotImplementedError def decode(self, input: Tensor) -> Any: raise NotImplementedError def sample(self, batch_size:int, current_device: int, **kwargs) -> Te..
2020.09.22 -
[Pytorch] torch에서 모델 summary 확인하는 방법
pytorch에서 keras처럼 summary를 정리해주는 함수가 있어서 공유한다. 찾다 보면 좋은 툴이 많은 것 같다(굳굳) Keras처럼 파라미터 개수랑 용량을 제공해준다! import torch from torch import nn from torchsummary import summary as summary_ from torch.nn import functional as F class MnistModel(nn.Module): def __init__(self): super(MnistModel, self).__init__() # input is 28x28 # padding=2 for same padding self.conv1 = nn.Conv2d(1, 32, 5, padding=2) # feature..
2020.08.25 -
[Pytorch] Pytorch를 Keras처럼 API 호출 하는 방식으로 사용하는 방법
파이토치에서 케라스처럼 API를 만들어서 하는 경우를 발견하게 돼서 공유한다. 실제로 이 규격에 맞춰서 LSTM도 만들수도 있을 것 같다(조금 복잡할 것 같기도 하지만) 기존 코드를 조금씩 바꿔서 해봤고, 아래에는 Custom Dataset에 대해서 새로 만들어서 진행해봤다. 이런 좋은 코드를 공유해주신 다른 분들이 고맙고, 나도 조금 수정을 해서 공유를 한다. 다들 즐거운 코딩하시길! Library Load import torch from torch import nn from torch import optim from torch.autograd import Variable from torchsummary import summary as summary_ import pkbar import warnings..
2020.08.25 -
[Pytorch] LSTM AutoEncoder for Anomaly Detection
LSTM AutoEncoder를 사용해서 희귀케이스 잡아내기 LSTM AutoEncoder를 사용해서 희귀케이스 잡아내기 도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ 우리 데이터는 많은데, 희귀 케이스는 적을 때 딥러닝 방법을 쓰고 싶을 때, AutoEncoder를 사용해서 희귀한 것에 대해�� data-newbie.tistory.com 기존에는 LSTM AutoEncoder에 대한 설명이라면, 이번에는 Pytorch로 구현을 해보고자 했다. 물론 잘못된 것이 있을 수 있으니, 피드백 주면 수정하겠다. Anomaley Detection을 당일날 맞추면 의미가 없으므로 시점을 이동시키는 작업을 하고, 이동시킨 데이터를 이용해 LSTM AutoEncoder를 진행해보고자 한..
2020.08.23