목록pytorch (11)
Deep Learning study
torch.nn.functional.pad(input, pad, mode='constant', value=0) 내가 원하는대로 padding을 줄 수 있는 함수이다. pad 를 마지막 dim에만 줄 경우 (pad_left, pad_right) 모양으로 준다. pad 를 마지막 2개의 dim에 줄 경우 (pad_left, pad_right, pad_top, pad_bottom) 모양으로 준다. pad 를 마지막 3개의 dim에 줄 경우 (pad_left, pad_right, pad_top, pad_bottom, pad_front, pad_back) 모양으로 준다. 예제를 보면서 쉽게 생각해보자. >>> t4d = torch.empty(3, 3, 4, 2) #쉽게 이미지를 생각하자 (batch, channe..
오늘은 입대한 이래로 처음으로 읽어본 논문을 정리해보려고 한다. 이 논문은 captcha solver 를 GAN을 이용해 구현한 내용이다. 흔히 captcha는사이트 회원가입을할때 많이 볼 수 있을것이다. captcha 는 사람과 프로그램을 구별하기 위한 방법으로 위의 사진과 같은 형태를 가지고 있다. text를 프로그램이 인식하기 힘들도록 글자를 서로 overlap 시킨다던가 사이에 선을 그어놓고나 , 글자를 왜곡시키고 노이즈가 있는 배경을 사용하는 등의 방법을 사용한다. 이 논문에 따르면 이전에도 머신러닝을 사용한 captcha solver에 대한 연구들이 있었지만, 사람의 손을 많이 타고 (데이터 라벨링, 데이터 수집, 전처리 등..) 많은 데이터를 수집해야하는 등의 불편함이 있었다고한다.이런 말을..
이전에 3번의 시도에 거쳐서 했던 실험을 끝내려고 한다 최종으로 만들어낸 모델을 살펴 보자. 사실 음.. 전에 것과 별반 차이는 없는것 같다.. Generator 내가 구성한 모델은 다음과 같다. 흑백이미지를 노이즈와 합쳐준것을 input으로 넣어준다. Conv layer 와 maxpool 로 이미지를 encode 한다 (encode한다는 말이 맞는건지는 잘 모르겠다.) 그런다음 maxpool layer를 거치면서 줄어든 사진크기를 deconvolution 으로 decode 하면서 크기를 복원시켜나간다. decode 하는 과정중에 encode 과정에서의 output을 계속해서 더해줬는데 , 저 과정 없이 실행을 했었더니(trial2) 형체를 알아보기 힘든 모양이 나왔다. 그래서 원래 이미지의 모양을 잊지..
Black & White 이미지를 Color 로 바꾸는 모델을 만들기 위해서 GAN 이라는 모델을 이용할 것이다. 사실 처음에는 그냥 단순한 ConvNet으로 해결하려 했지만 성능은 참담했다. 흑백이미지를 input으로 학습을 시켰을때, Color이미지를 만들어내는것이 아니라 원래 이미지보다 약간은 흐린 갈색 이미지가 나오게 되는 것 이였다. 그래서 찾다가 찾다가 , GAN 을 알게되고 공부해 보았다. 첫번째로 만들어낸 모델은 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667class Generator(nn.Module): def ..
class torch.nn.Sequential(*args)[source] 편하게 순차적으로 실행하도록 담는 container라고 생각하면 될 것 같다. 내가 했던것을 예를들면 x = self.conv1(x) x = self.dropout(x) x = self.pool(F.relu(x)) x = self.conv2(x) ... 뭐 이런식으로 썼다. 하지만 위의 함수를 쓰면 model = nn.Sequential( nn.Conv2d(....), nn.ReLU(), nn.Conv2d(20,64,5), nn.RELU() ) 이므로 forward() 에서 x = self.model(x) 만 써주면 된다. 깔끔하고 편리한 함수인것 같다. 이걸 왜 지금 알았을까 원문보러가기
class torch.nn.Upsample(size=None, scale_factor=None, mode='nearest')[source] input은 minibatch * channels * depth * height * width 이다, 하지만 2D에서는 4D Tensor만 있으면 된다. Size와 scale_factor는 같이 사용하면 의미가 명확하지 않기 때문에, 같이사용하지 않는다. size(tuple, optional) : output사이즈를 직접 설정해 준다. (Depth, Height, Width) scale_factor(int, optional) : Depth, Height, Width에 입력받은 정수 만큼 곱해준다. (1,1,2,2) 가 인풋으로 들어오면 (1,1,4,4)가 된다. mo..
class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True) Conv2d의 parameters는 차례대로 in_channels, out_channels, kernel_size, stride, padding, diction , groups, bias 가 있다. 필수 요소로는 in_channels, out_channels,kernel_size 가있다. in_channels(int) : input image의 channel수 이다. rgb이미지라면 3이 되겠다. out_channels(int) : convolution에 의해서 생성된 channel의 수 이다. ke..
며칠간 재미있는 대화 데이터를 가지고 대화모델을 만들어 보았다. source.txt 거울 보면 본인이 잘생겼다는 생각이 드나요? 너만 자꾸 생각나 생일 축하해! 너무 더워서 숨이 턱턱 막혀 주말에 뭐하지? 짜증나 ... target.txt 당연하죠. 전 거울을 볼 때마다 스스로 잘생겼다는 생각을 해요 나도 그래. 내 머릿속은 항상 너로 가득 차 있어. 생일 축하해줘서 고마워 많이 더우신가 봐요. 서핑? 이번 주말에는 날씨가 좋대~ 뭐가 짜증 나시는지 들어드릴게요. 얘기해보세요 ... 대충 이런대화모델! 전체적인 코드는 pytorch tutorial을 보고 만들었다 12345678910111213141516from __future__ import unicode_literals, print_function,..