본문 바로가기

전체 글

PyTorch contiguous Attention을 활용한 NMT를 학습하던 도중 다음과 같은 에러가 발생했다. --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) in () 108 for epoch in range(N_EPOCHS): 109 start_time = time.time() --> 110 train_loss = train(model, train_iterator, optimizer, criterion, CLIP) 111 valid_loss = evaluate(model, valid_iterator, criterion) 112 end_time = time.tim.. 더보기
Docker 명령어 정리 1. 실행 중인 컨테이너 확인 docker ps docker ps -a 밑은 중지 중인 컨테이너까지 모두 포함 2. 실행 중인 container에 접속 docker attach 3. 컨테이너 이름 변경 docker rename 4. 파일 복사 docker cp : 더보기
PyTorch에서 tensor를 copy하는 법 https://stackoverflow.com/questions/55266154/pytorch-preferred-way-to-copy-a-tensor PyTorch에서 tensor를 복사하는 방법은 여러가지가 있다. y = tensor.new_tensor(x) #a y = x.clone().detach() #b y = torch.empty_like(x).copy_(x) #c y = torch.tensor(x) #d 과연 어떠한 방법이 올바르게 tensor를 복사하는 방법일까? a: y = tensor.new_tensor(x) new_tensor()는 parameter가 뭐든간에 이를 읽어서 leaf variable을 생성한다. 따라서 근본적으로 b와 동일한 코드이다. 만약 grad가 흐르게 하고 싶다면,.. 더보기
torch.expand() vs. torch.repeat() 네트워크에 feed하다보면 차원을 만져줘야 되는 일이 있다. 그때 사용하는 것이 torch.repeat()인데, torch.expand()랑 구체적으로 어떠한 차이가 있는지 모르겠어서 한번 찾아봤다. torch.repeat(*sizes) 특정 텐서의 sizes 차원의 데이터를 반복한다. 예시를 통해 이해해보자. >>> x = torch.tensor([1, 2, 3]) >>> x.repeat(4, 2) tensor([[ 1, 2, 3, 1, 2, 3], [ 1, 2, 3, 1, 2, 3], [ 1, 2, 3, 1, 2, 3], [ 1, 2, 3, 1, 2, 3]]) >>> x.repeat(4, 2, 1).size() torch.Size([4, 2, 3]) x는 [1, 2, 3]으로, 이를 dim=0으로 4.. 더보기
PyTorch RNN 그냥 PyTorch RNN 이용하면서 중요한 점 간단하게 공유해봄. 실제 코드에서의 이야기이니 RNN을 모르는 사람은 이론적인 배경을 공부하고 오면 좋을듯 싶다. 기본 구조 우리가 생각하는 것과는 다르게, RNN은 $x_1, ..., x_{t}$]의 sequence 데이터 전부를 필요로 한다. 즉, iterative $x=1, 2, 3, ...$을 하나씩 넣는 구조가 아니다. 기본 구조는 다음과 같이 생겼다. model = RNN(input_size: int, hidden_size: int, num_layers: int=1, bias=True, batch_first: bool, dropout: float, bidirectional: bool=False, nonlinearity: str='tanh&.. 더보기
PyTorch Attention 구현 issue 정리 포트폴리오 용으로 Attention을 구현하던 중 헷갈리는 개념을 정리하였다. 원본은 https://stackoverflow.com/questions/62444430/implementing-attention/62445044#62445044 을 참고하면 된다. (본 링크는 부족한 영어실력으로 내가 직접한 것임.) 1. Decoder의 초기 hidden state $s_0$는 어떤 값인가?? 이를 물어본 이유는 내가 참고한 implementation에서 $s_0$를 구하는 과정이 각기 다 달랐기 때문이다. 아래는 PyTorch 재단에서 제공하는 NLP 튜토리얼인데, 이 부분에서 $s_0$는 context vector로 정의하고 있다. https://colab.research.google.com/drive/1.. 더보기
Docker로 (대충) 딥러닝 개발환경 구축하기 기존에는 colab으로 학습을 진행하고 있었는데, 로컬에 세팅을 하자니 업데이트 할 것도 많고, 버전 꼬일 것도 걱정되고 해서 docker를 사용하기로 결정했다. 컴공 출신이 아니라 linux도 모르고, 일단 들이박느라 개고생을 했지만... 한번 천천히 따라가보자. 그냥 citation덕지덕지 달터이니 review 논문 읽는 셈 치면 될거같다. 1. Docker 설치하기 Docker를 설치하는 것은 간단하다. 구글링을 하면 다양한 환경에서 설치하는 방법이 나온다. 나는 다음 블로그를 참고했다. https://www.quantumdl.com/entry/PyTorchTensorflow%EB%A5%BC-%EC%9C%84%ED%95%9C-Docker-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%.. 더보기
Access Create Table Query 본 포스트에서는 Ms access 2016을 이용하여 Table 생성 및 변경, 삭제 쿼리를 다루어보는 일을 하겠다.포스트의 대부분은 링크로 대체하여 설명할 것이며, 특수하게 발생 할 수 있는 일만 직접 다룬다.그냥 누군가가 정리해놓은 reference를 본다고 생각하고 봐주시면 된다. 1. CREATE TABLE: 1). 문법:12345CREATE TABLE table_name(attribute_1 data_type constraint,attribute_2 data_type constraint,....)Colored by Color Scriptercs 문법은 다음과 같다:(1). table_name은 table의 이름을 뜻한다.(2). attribute_1은 attribute의 이름을 뜻한다.(3). .. 더보기