pytorch(35)
-
RL) DuelingDQN 알아보기
기존의 Double DQN이라는 것이 있었는데, 이 논문에선 advantage function을 도입하여 성능을 더 향상한 논문이라 할 수 있습니다. 가장 큰 특징 Dueling DQN 알고리즘은 Q-VALUE을 값 함수 V (s)와 이점 함수 A (s, a)의 두 부분으로 나눕니다. 여기서는 advatange function과 value function이 동시에 존재한다해서 dueling이라고 한다고 합니다. 직관적으로, dueling 아키텍처는 각 state에 대한 각 작업의 효과를 학습할 필요 없이 어떤 상태가 가치 있는지(또는 가치가 없는지를) 학습할 수 있습니다. 이는 특히 해당 action이 environment에 관련되는 어떤 방식으로도 영향을 미치지 않는 상태에서 유용합니다. 배경 논문의 ..
2021.06.03 -
RL) Double DQN 알아보기
일단 double dqn을 보기에 앞서 기존의 q-learning과 deep q-learning을 간략하게 그림으로 보여주고 시작하겠다. 간략히 나온 배경에 대해 말하자면, 기존의 있던 deep q learning 같은 경우 action value에 대한 overestimate가 문제였다. 그래서 이 double dqn은 이러한 문제를 해결하기 위해 나온 것이다. 간략하게 핵심만 살펴보자. Double Q-Learning이 무엇인지? Double Q-Learning 알고리즘 Double Deep Q Network(Double DQN) 구현 Double Q-Learning이 무엇인지? double q learning은 [1] H. van Hasselt 2010 이 기존 q-learning에서 action ..
2021.05.09 -
pytorch) dataloader sampler
OverSampler / StratifiedSampler 구현물 OverSampler는 다른 코드를 참고해서 수정해봤습니다. OverSampler from torch.utils.data import Sampler class OverSampler(Sampler): """Over Sampling Provides equal representation of target classes in each batch """ def __init__(self, class_vector, batch_size): """ Arguments --------- class_vector : torch tensor a vector of class labels batch_size : integer batch_size """ self.n_sp..
2021.04.19 -
pytorch) Create Your Own GNN DataSets
기존 데이터를 활용하여, gnn 데이터로 바꾸는 것 해보기 간단하게 만드는 것을 확인해봄. 아직 완전히 각각의 구성요소에 대한 설명은 확인해봐야 함. import torch from torch_geometric.data import InMemoryDataset, download_url from torch_geometric.data import Data class TestDataset(InMemoryDataset): def __init__(self, data_list): super(TestDataset, self).__init__('/tmp/TestDataset') self.data, self.slices = self.collate(data_list) x = torch.Tensor([[1], [1], [1..
2021.04.13 -
installation) torch_geometric
CUDA -> cpu, cu101, cu102, cu11로 교체 pip install torch==1.8.1+cpu torchvision==0.9.1+cpu torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.8.0+cpu.html pip install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.8.0+cpu.html pip install torch-cluster -f https://pytorch-geometric.com/whl/torch-1...
2021.04.13 -
GNN - Application 및 샘플 코드
gnn 관련 자료들 수집중... applicatin과 예제 코드 jonathan-hui.medium.com/applications-of-graph-neural-networks-gnn-d487fd5ed17d Applications of Graph Neural Networks (GNN) In two previous articles, we present an overview of the GCN and GNN networks. In our final article, we will cover their possible… jonathan-hui.medium.com neptune.ai/blog/graph-neural-network-and-some-of-gnn-applications Graph Neural Networ..
2021.04.13 -
[Pytorch] gather 함수 설명 (특정 인덱스만 추출하기)
우리가 자주 쓰는 방식은 위와 같은 방식이지만, 실제로 우리가 각각에 대해서 특정 인덱스를 뽑고자 하는 경우가 있다. 최근에 동료 연구원이 이것에 대해서 질문을 하였을 때, 즉각적으로 생각이 안 나서, 시간을 소비하였고, 유용하면서도 헷갈리는 것 같아 정리해보려고 한다. torch.gather(input, dim, index, out=None, sparse_grad=False) → TensorGathers values along an axis specified by dim. 위와 같이 특정 인덱스를 뽑으려고 하면 처음 접근 방식은 loop를 생각하지만, torch에서는 gather 함수를 제공하여 쉽게 indexing을 할 수 있다. 그리고 loop 방식은 차원이 커질 수록 일반화된 방식으로 처리하기가 ..
2021.03.17 -
PyGAD + Pytorch + Skorch+ torch jit
보호되어 있는 글입니다.
2021.01.30 -
[Pytorch] How to Apply the Weight Initialization (Code)
def weights_init(m): classname = m.__class__.__name__ if classname.find("Conv") != -1: nn.init.normal_(m.weight.data, 0.0, 0.02) elif classname.find("BatchNorm") != -1: nn.init.normal_(m.weight.data, 1.0, 0.02) nn.init.constant_(m.bias.data, 0) netD.apply(weights_init) docs.ray.io/en/master/tune/tutorials/tune-advanced-tutorial.html Guide to Population Based Training (PBT) — Ray v1.2.0.dev0 PBT ..
2020.12.17 -
[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 -
[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