본문 바로가기

pytorch13

[pytorch vs. Tensorflow] 딥러닝 프레임워크? 어떤 차이가 있을까? 1. Intro python으로 Deep learning 연구를 할때, 대부분의 사람들이 pytorch, Tensorflow를 이용합니다. 저는 pytorch를 이용합니다. 그런데 이 둘의 차이점에 대해서 궁금해 보신적이 없나요? 저도 항상 궁금하던 찰나에 외국 블로그를 참고하여 정리해 보았습니다. 2. pytorch vs. Tensorflow pytorch는 Facebook 그룹이 제작을 하였고, 2017년 github를 통해 open-source로 공개되었습니다. Tensorflow는 구글에서 만들어졌고, pytorch보다 더 일찍인 2015년에 open-source로 공개가 되었습니다. 그리고 구글에서 제작하다보니 안드로이드를 포함한 다양한 장치와의 호환성으로 인해 많은 스타트업이나, 조직에서 사용.. 2024. 4. 4.
[Torch] RuntimeError DataLoader worker pids 15332 exited unexpectedly 에러가 나는 이유? 1. Introduction 딥러닝을 하다보면 다음과같은 에러가 발생할 때가 있다. RuntimeError : DataLoader worker pids * exited unexpectedly 구글에 찾아보면 dataloader에 num_workers = 0 으로 수정하면 된다는 포스팅이 보인다. 혹은 에러나는 부분의 구문을 삭제하라는등.. 이런 해결책이 보인다. dataloader에서 사용하고 있는 num_workers는 병렬로 처리해서 분석해주는 것이기 때문에 데이터가 클 때 빠르게 분석하고 싶다면 필수적으로 사용해야한다. 대신 무턱대로 숫자를 올리면 서버가 너무 느려지니 고려해야한다. 2. 이유가 뭔데? 에러의 이유는 다양하다. - 이것저것 많이 돌려서 메모리가 충분하지 않거나 - 데이터의 문제가 있.. 2023. 9. 26.
[pytorch,smp] 모델 weights 경로 일하는 곳이 병원이다보니 민감한 데이터를 다루게 되고, 그에 따라 제한적으로 연구가 가능합니다. 너무 불편한점 중 하나가 분석하는 컴퓨터에 외부인터넷을 못하게 하는 단점이 있습니다. 그러다 보니 딥러닝 모델의 weights를 외부에서 따로 넣어줘야 하는데, 설명이 안 써져 있어서 많이 찾아보았습니다. 휴우... 결과는 뭐냐.. torch와 segmentation_models_pytorch 이 두 module다 같은 경로에서 model weights를 가져오더군요.. 윈도우 기준 C:\Users\사용자이름\.cache\torch\hub\checkpoints 우분투 기준 /home/사용자이름/.cache/torch/hub/checkpoints/ 여기다가 모델들 weights를 넣어주면 됩니다. ( 인터넷이 .. 2023. 3. 14.
[딥러닝] 모델 결과가 매번 다르게 나오는 경우 최근 딥러닝 모델을 개발하고 모델확인을 하면서 문제를 직면한 부분중 하나가 바로 모델 결과가 매번 다르게 나오는 경우입니다. 모델을 열심히 시간 돌려가면서 제작을 하더라도 확인할 때, 아래와 같이 결과가 안나오거나, 이상하게 예측이 되는 때가 있었습니다. 모델 내부나 pytorch의 random 문제가 이일을 발생시키는 줄 알고 다양한 방법을 시도 해보았으나, 해결이 되지 않았습니다. torch.manual_seed(1234) torch.backends.cudnn.deterministic = True torch.backends.cudnn.benchmark = False np.random.seed(1234) 그러다 겨우 찾아낸 문제가 바로 데이터셋 제작할 때, train에 썻던 이미지 변환방법이 문제였습니.. 2022. 12. 15.
[pytorch, 딥러닝] CUDA out of memory 에러 해결방법(이미지분석) 모델을 제작하거나, 사용할 때 가장 많이 발생되는 에러를 정리해보겠습니다. 1. CUDA out of memory?! 말 그대로 메모리 부족으로 모델 작동이 안되는 경우입니다. GPU로 분석할 경우 전용 GPU메모리가 넘치면 멈추게 됩니다. 이런 error의 경우 모델을 제작할때, 혹은 모델을 사용할때 발생이 됩니다. 2. 에러를 어떻게 해결해야하는가? CUDA out of memory 에러의 일반적으로 구글링에서의 해결방법은 batch size를 줄여라. 다른 프로세스의 GPU점유를 줄여라 입니다. 이 방법은 모델을 제작할때 발생하는 에러에 대한 해결방법입니다. 만약 여러분 중에 일부가 어떠한 모델을 사용할때 위 같은 에러가 발생을 한다면, 모델 제작할때 해결방법과 같다고 생각이 되시겠지만, 그렇지 않.. 2022. 8. 10.
[pytorch, 딥러닝] pin_memory 란 무엇인가? Pin memory란 무엇인가? 우리가 모델을 제작을 함에 있어서 GPU를 사용하려면 GPU에 데이터를 로드를 해줘야 하는데, 이때 빠르게 데이터를 옮기기 위해 사용하는 것이 pin memory입니다(대부분의 데이터는 cpu + RAM에서 작동이 되기 때문에 이를 GPU에 세팅을 해줘야합니다.) 좀 더 자세히 이야기하자면(제가 이해하는데로 말하겠습니다.) 우리가 일반적으로 분석할때에는 CPU + RAM을 이용합니다. 변수를 DRAM에 할당시켜서 분석이 이루어집니다. 이때 GPU의 경우 DRAM에 할당된 데이터를 사용하지 못합니다. 그렇기 때문에 GPU 전용 메모리 쪽에 옮기기 위해서는 pinned memory를 사용하게 됩니다. 즉 DRAM (pageable Memory)에서 pinned memory로 .. 2022. 8. 10.