본문 바로가기

PYTHON

(23)
[Numpy] numpy.random.randint 설명 numpy.random.randint Return random integers from the “discrete uniform” distribution of the specified dtype in the “half-open” interval [low, high). If high is None (the default), then results are from [0, low). 즉 'discrete uniform (이산균등분포)'로써 랜덤한 정수를 반환해주는 함수이다. 이산균등분포란 확률 함슈가 정의된 모든 곳에서 그 값이 일정한 분포를 나타낸다는 것이다. 대표적인 예로 주사위를 들 수 있다. 주사위는 1, 2, 3, 4, 5, 6의 값을 갖고, 주사위를 굴렸을때 각각의 값이 나올 확률은 1/6 이다. i..
[PYTORCH] DataLoader worker is killed by signal: killed 오류 그 아무도 돌려놓은 서버에 kill하라는 명령을 내리지 않았지만 밤에 돌려놓고 다음날 오전에 확인하면 이렇게 죽어있는 경우가 있다. 오류 내용은 아래 그림과 같다. 필자는 서버컴퓨터에 docker container를 띄워서 사용하고 있다. 구글링을 요리조리 해봤는데 --ipc=host를 추가하면 해결이 된다라는 말도 있었는데 필자는 이미 항상 써왔던 것이어서 패스. 그리고 shm size가 작아서 그럴수도 있다라는 말도 있었는데 이미 133G로 정말 빵빵하게 늘려져 있어서 패스. 그냥 데이터의 크기가 커서 안돌아간다는 건... 아니지 않을까 싶다... 어쨋든 상황상으로 생각해볼때 작은 데이터셋으로 테스트를 할때에는 문제가 없었는데 큰 데이터셋으로 학습을 돌릴때 저러는 것으로 보아 데이터의 크기가 너무 커..
[Matplotlib] HeatMap 그리기 Introduction Python에서는 정말 많은 라이브러리들이 있다. 그 중에서도 머신러닝/딥러닝을 하는 사람들이라면 Heatmap을 한번쯤 써보지 않나 싶다. Heatmap은 '다양한 정보를 일정한 이미지 위에서 열 분포 형태로 visualization 한 것'을 의미한다. Code import matplotlib.pyplot as plt import numpy as np import torch data = torch.rand(128, 256) # freq, time # data = data.permute(1, 0) print(data.size()) data = data.numpy() plt.figure(figsize=(10, 9)) plt.matshow(data) plt.colorbar() 구현 ..
[PYTORCH] Truncated File Read Error error message /usr/local/lib/python3.6/dist-packages/PIL/TiffImagePlugin.py:819: UserWarning: Truncated File Read warnings.warn(str(msg)) PIL (pillow)라이브러리에서 A라는 이미지를 로드하면서 발생한 오류이다. 이유는 A라는 이미지가 손상된 상태이기 때문이다. 즉 코드의 문제는 아니고 손상된 이미지이기 때문에 발생하는 warning이다. 궁금증 해결 끝.
[PYTORCH] DistributedDataParallel이란? - Nvidia APEX로 구현하기 Introduction 행렬(이하 Tensor)연산을 기반으로 하는 Deep Neural network는 CPU에서 연산을 할때보다 GPU를 통해서 그래픽 연산을 할때 더 높은 퍼포먼스를 보인다. Deeplearning이 점차 발달하면서 신경망을 더욱 깊고 크게 설계하는 것이 트렌드가 되면서 이제는 GPU 한장으로는 학습하기에 벅차다. (hpyer-scale...) 또한 Deeplearning 을 점목하는 task가 점점 늘어나고, 이미지보다 더 큰 동영상, 음원 등을 학습데이터로 사용하기 때문에 한개의 GPU로 학습시키기에는 성능/메모리의 제한이 있다. 그래서 이제는 하나의 GPU만을 사용해서 학습을 시키는 것이 아닌 여러개의 GPU를 사용하는 multi-GPU 학습이 필요하다. Pytorch에서는 D..
[PYTORCH] Pytorch Lightning이란? Introduction PytorchLightning은 Pytorch를 구조적으로 편하게 사용할 수 있도록 인터페이스 제공 목적의 라이브러이이다. 라이브러리 내부적으로 16bit train, DP (DataParallel), DDP (DistributedDataParallel) 등을 진짜 몇줄만 적어서 사용할 수 있도록 구현되어있다. 필자도 Pytorch를 계속 써오고 다양한 모델들을 implementation하고 buildup 해보면서 신경써야할 여러 부분들이 있었는데, Pytorch lightning 라이브러리를 딱 보고 좋다!라는 생각을 하였다. 그래서 한번 써보려고한다. 기존 코드들을 다 implement 시키는 것은 좀 귀찮겠지만 앞으로 제작하는 프로젝트는 Lightning을 적용하여 코드를 구..
[PYTORCH] 2개 이상의 Loss를 사용할때 주의할 점 model을 모델링할때 loss function을 2개 이상 사용하는 경우가 있다. 이때 아래와 같은 로그가 뜰 수 있다. RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [64, 128, 512]], which is output 0 of PermuteBackward, is at version 89; expected version 0 instead. Hint: the backtrace further above shows the operation that failed to compute its gradient. The..
[PYTORCH] torch.max 함수 설명 torch.max torch.max(input) -> Tensor torch.max(input, dim, keepdim=False, *, out=None) -> tuple (max, max_indices) torch.max 함수는 텐서에서 최대값을 구하는 함수이다. import torch import torch.nn as nn data = torch.randn((5, 5)) print(data) print(torch.max(data)) #### # tensor([[ 1.1328, -0.0392, -0.7076, 0.5610, 0.8010], # [-0.0898, -1.4467, -0.7285, -0.1195, -2.1070], # [ 0.4547, 1.7739, 0.1664, -1.0242, 0.0474..