전체 글(26)
-
CUDA Out of memory - 코드를 조금 수정했을 뿐인데, 갑자기 발생 시
Pytorch 등을 아직 많이 다뤄본 것은 아니지만, CUDA out of memory 에러는 정말 많이 봤던 것 같다. 당연히 gpu 자체가 모자란 경우가 대부분이였지만, 직접 코드를 다루기 시작하자 정말 창의적인 순간에 나타나며 날 괴롭게 하는 녀석이다. 아직까지는 크게 2가지 경우가 나타났지만, 경험이 쌓이며 더 많은 경우를 만나지 않을까 싶다. 1. with torch.no_grad()를 사용하지 않았을 경우 Tensor들로 이뤄지는 모든 연산에는 기본적으로 gradient가 저장되게 된다. torch.no_grad()는 이 저장 기능을 잠시 끄는 것으로, gradient들에 할당되는 메모리를 절약할 수 있게 해 준다. 당연히 모델이 크거나 input tensor가 이미지처럼 용량이 큰 경우 자연..
2023.04.05 -
Protobuf 관련 dependency 충돌
protobuf 패키지는... 충돌이 꽤 있는 것 같다. 덕분에 가상환경 세팅을 할 때마다 머리카락 5개 정도는 흰머리로 변하는 기분이다. 현재 쓰던 가상환경에 뭔가 비전 관련 패키지를 pip install 시, 간혹 protobuf 덕분에 아래 같은 dependency 충돌이 발생한다. protobuf 3.20.2 이상으로 설치하면 모든 게 해결될 것만 같다. 물론 그랬다면, 이 충돌을 따로 정리할 일도 없었을 것이다... 세상에 이렇게 완벽한 모순이 있을 수가 Tensorflow를 다운그레이드 시켜보기도 했고, 재설치도 해 봤지만 이 충돌은 말 그대로 모순인지라 그냥 쓰기로 했다. 천만다행으로, 현재 돌리는 모델에서 에러가 뜨지 않으니 이걸로 된 거... 아닐까? +) tensorflow 2.12.0..
2023.03.28 -
AttributeError: module 'cv2.cv2' has no attribute ~~~
cv2를 import해서 사용하려고 할 때, 간혹 특정 attribute가 없다며 제목과 같은 에러 메시지가 뜰 때가 있다. OpenCV에는 기본적인 것들만 있고, 새로운 기능이 추가되는 경우 openCV에 바로 추가되는 것이 아니라 opencv-contrib이라는 곳에 먼저 추가한다고 한다. 따라서, 해당 모듈을 추가로 설치해야 한다. pip install opencv-contrib-python 위와 같이, 모듈을 추가로 설치해주면 보통 에러가 해결된다. 추가로 설치했음에도 불구하고 계속 위 에러가 발생한 적이 있었는데, opencv와 opencv-contrib-python을 모두 uninstall한 뒤 다시 install하면 에러가 해결되었다.
2023.03.15 -
(Pytorch) ImportError: numpy.core.multiarray failed to import numpy (version)
Pytorch 사용 시 잊어버릴 때쯤 되면 등장하는 에러. Numpy 버전 차이로 인해 정상적인 import가 안 되는 경우인데, 버전 문제이니만큼 pip install -U numpy or pip install --upgrade numpy 등, numpy를 업그레이드 해 주면 정상 작동한다고 알려져 있다. 문제는, 이미 최신 버전인 경우 이 방법을 사용할 수 없다는 것이다. 재설치? 어림도 없었다. 어디선가 봤던 글에서는 conda - pip 차이로 인한 충돌 때문이니(anaconda를 사용 중이였다), conda로 install을 하면 된다고 했지만 그것 또한 먹히지 않았다. 이 에러는 기묘한 방법으로 해결되었는데, tensorflow 재설치를 하고 나니 언제 그랬냐는 듯 코드가 멀쩡히 돌아갔다. (..
2023.02.05 -
(Python3) Modulenotfounderror: no module named ~~~
패키지를 import 시 위 에러가 발생했다면, 보통 설치가 되어 있지 않은 경우가 대다수이다. 그런데, 이미 설치된 패키지에 대해서, 또는 user-defined module에 대해 위 오류가 발생하는 경우도 있다. 이 경우, 경로 문제일 가능성이 크다. 따라서 패키지의 경우 sys.path에 대상 패키지에 대한 경로가 있는지 확인하고, 모듈의 경우 간단한 코드 몇 줄을 추가해주면 된다. import os import sys sys.path.insert(0, os.getcwd()) (참고: https://news.ycombinator.com/item?id=32692495)
2023.02.05 -
[논문 읽어보기] DAB-DETR : Dynamic Anchor Boxes are Better Queries for DETR
DAB-DETR: Dynamic Anchor Boxes are Better Queries for DETR We present in this paper a novel query formulation using dynamic anchor boxes for DETR (DEtection TRansformer) and offer a deeper understanding of the role of queries in DETR. This new formulation directly uses box coordinates as queries in Transformer dec arxiv.org GitHub - IDEA-Research/DAB-DETR: [ICLR 2022] DAB-DETR: Dynamic Anchor Bo..
2022.11.27