본문 바로가기

TIL

(8)
[Python] GPU 사용량 확인 사용가능한 여러개의 GPU중에서 사용량 기준으로 어떤 GPU를 모델 학습/추론에 사용할지 자동으로 결정하기 위한 코드를 작성하고 싶어 방법을 찾아보던중, 새로 알게된 정보가 있어 적어놓으려한다.torch.cuda.memory_allocated()서두에서 언급한 내용을 검색해보면, 보통 `torch.cuda.memory_allocated(device_idx)`를 사용하면 `device_idx`에 해당하는 gpu에서 어느 정도의 메모리를 사용하고 있는지가 나온다고 한다. 물론 맞는 말이지만, 조사하면서 알게된 내용을 덧붙이자면, 해당 코드는 pytorch 프레임워크 내에서만 사용중인 gpu 메모리의 양을 보여준다. 예를 들어서 한 컴퓨터에서 그래픽 작업을 위한 툴을 사용하면서 GPU를 사용중이라고 하면, `..
[Python] 함수의 인자 전달 시, 인자 값의 변경 Python을 사용해 함수를 만들어 실행시킬때, 어떤 경우에는 함수의 전달 인자로 사용된 값이 변하지 않고,어떤 경우는 따로 return을 하지 않아도 전달 인자에 사용된 값이 변하는 경우가 있다. C언어의 경우에는 전달 인자로 값 자체를 전달하는 Call-by-Value방식과 포인터 값을 전달하는 Call-by-Reference방식이 명확하게 구별되어있지만,https://sdsf1225.tistory.com/118 C언어 - (12) : 포인터와 함수함수에 대해 복습해보면, 함수를 선언할 때 'return type', 'function name', 'input(type)' 등의 요소가 필요했다.int Func(int num) // int : return type / Func : name / int nu..
[Pytorch] torch.Tensor.masked_fill https://pytorch.org/docs/stable/generated/torch.Tensor.masked_fill_.html torch.Tensor.masked_fill_ — PyTorch 2.5 documentationShortcutspytorch.org공식 document에 따르면 `torch.Tensor.masked_fill_`의 구버전으로, `Tensor.masked_fill_(mask, value)`의 형태로 사용 가능하다. `mask`에 해당되는 Tensor의 값을 `value`로 바꿔 return시켜주는 메소드이다.
[Pytorch] GPU elapsed time / torch.cuda.Event() 딥러닝 모델이 실행되는 시간을 체크하려면 일반적으로 사용하는import timestart = time.time()output = model(input_tensor)elapsed_time = time.time()-start혹은import timestart = time.perf_counter()output = model(input_tensor)end = time.perf_counter()다음과 같은 방식으로 접근하는 것은 정확하지 않다. 그 이유는 우리가 일반적으로 딥러닝 모델에 대한 연산을 진행할 때 GPU를 사용하기 때문이다. 딥러닝 모델에 대한 연산이 진행되는 개괄적인 흐름은 다음과 같다.CPU에서 모델 학습/추론에 사용될 input tensor를 준비준비된 input tensor를 모델에서 연산이때 ..
[Pytorch] torch.Tensor.expand() & torch.Tensor.repeat() torch 사용 중에 expand와 repeat을 몇번 접하게 되었는데, 사용하게 되면 어떤 결과가 나오는지에 대한 naive한 느낌은 있지만 명확하게 기억나지 않을때가 있어서 정리해놓으려고 한다. torch.Tensor.expand()https://pytorch.org/docs/stable/generated/torch.Tensor.expand.html#torch.Tensor.expand torch.Tensor.expand — PyTorch 2.4 documentationShortcutspytorch.orgPytorch 공식문서에 따르면, expand 메소드는 '차원 수가 1인 dim에 대해 그 수를 늘려준 view를 반환한다' 라고 설명되어있다.import torchtensor = torch.tenso..
[Pytorch] Contiguous pytorch tensor에 contiguous라는 method를 처음 접하게 되어서, 찾아본 후에 정리해본다. Pytorch 공식 documenthttps://pytorch.org/docs/stable/generated/torch.Tensor.contiguous.html torch.Tensor.contiguous — PyTorch 2.4 documentationShortcutspytorch.org공식 문서에 따르면, 'Returns a contiguous in memory tensor containing the same data as self tensor. If self tensor is already in the specified memory format, this function returns th..
VSCode Debugger /w conda 가상환경 VS Code의 Debug기능을 활용해 python 스크립트의 소스 코드를 디버깅하려고 하는데, 가상환경에서 작업해놓은 결과물을 바로 디버깅 시키면 패키지 불일치로 인해서 실행되지 않는 경우가 발생한다. 이런 경우에는, VScode의 setting에 들어가 'python venv'를 검색하면다음과 같은 항목들이 나오는데,  위의 venv Folders에 venv환경을 담고 있는 폴더를 추가하거나, 밑의 항목에 venv directory를 직접 입력해주고 Ctrl+Shift+P를 해주고 'Select Interpreter'를 선택하면 설정한 경로에 해당하는 venv목록이 나타나게 된다. 여기서 python 스크립트를 실행할때 사용할 venv를 고르고 F5를 누르면, 선택된 환경으로 디버깅이 실행된다. Re..
Cron - Schedule 문법 What is 'Cron'? Cron은 정해진 스케쥴에 맞춰 지정된 작업을 수행하도록 설정할 수 있는 Job Scheduler입니다. 흔히 알고 있는 Cron은 'Cronie'라는 패키지로, 그 안에는 Crond(데몬) + Crontab(스케쥴러)가 포함되어 있습니다. Daemon Daemon이란, 컴퓨터에서 항상 사용할 수 있도록 백그라운드에서 항상 실행되는 프로세스로서, d로 끝나는 process name을 가집니다. 지금은 이정도만 알아보도록 하고, 추후에 기회가 된다면 더 자세히 알아보고 포스팅해볼 예정입니다. Cron 설치 Cron패키지(Cronie)의 설치 방법은 다음과 같습니다. Debian계열(Ubuntu) apt-get install cron Fedora계열(CentOS) yum inst..