일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Windows
- nodejs
- JS
- mariadb
- API
- error
- 엘라스틱서치
- ssh
- sample
- 구글
- build
- MySQL
- JavaScript
- Kibana
- Ai
- docker
- logstash
- 유니티
- Es
- s3
- elasticsearch
- MSSQL
- 설정
- AWS
- 영어
- unity
- Python
- Linux
- ChatGPT
- Today
- Total
가끔 보자, 하늘.
GroundingDINO 설치 썰! 본문
'썰!'이라고 쓴건 그냥 해프닝 정도라.. 그래도 기록으로 남겨두면 좋을 듯 해서 공유합니다. 브끄럽네요.
이미 web ui를 로컬에 설치해서 사용중이었으며, extension DDSD(https://github.com/NeoGraph-K/sd-webui-ddsd)를 추가 설치하려고 했습니다.
시작은 이 에러!
File ".....\venv\lib\site-packages\groundingdino\models\GroundingDINO\ms_deform_attn.py", line 53, in forward
output = _C.ms_deform_attn_forward(
NameError: name '_C' is not defined
ms_deform_attn.py를 확인하니 위 에러의 출처는 이 곳!
try:
from groundingdino import _C
except:
warnings.warn("Failed to load custom C++ ops. Running on CPU mode Only!")
.
.
output = _C.ms_deform_attn_forward(
value,
value_spatial_shapes,
.
.
보통은 install 할 때 문제가 없을 수 있지만 torch 버전이나 CUDA, cuDNN 등의 이슈가 있었는지 위와 같은 에러가 발생했습니다. GroundingDINO의 C++ Module을 빌드할 때 에러가 발생했던 것 같습니다.
당시에는 저 에러 자체가 뭘 말하는지 정확히 몰랐었기 때문에 다양한 삽질을 하게 됩니다. 오래되서 순서 상관없이 관련된 작업들을 쭉 나열해 두겠습니다. 보시는 분들은 필요한 부분만 골라서 참고하시면 될 듯 합니다. :)
CUDA, cuDNN 업그레이드 (cuDNN 설치는 NVidia 개발자 등록이 필요합니다. 무료입니다.)
pytorch 업그레이드
현재 버전 확인, 터미널에서 python -c "import torch; print(torch.__version__)"로 확인 가능.
저의 경우는 1.13.1+cpu 버전이 설치되어 있었습니다. 즉, 심지어, gpu를 사용하지 않는 버전... -_-a
우선 언인스톨, pip uninstall torch
설치 버전 확인, http://download.pytorch.org/whl/ 에서 os와 cuda 버전에 맞는 링크 확인.
인스톨(저는 windows, cuda 11.8, 설치하려는 torch 버전은 2.0.1), pip install http://download.pytorch.org/whl/cu118/torch-2.0.1%2Bcu118-cp310-cp310-win_amd64.whl
이제 버전을 다시 확인해보니, 2.0.1+cu118 !! 두둥!!!
이제 DDSD를 재설치해서 다시 실행합니다. 하지만 동일한 에러!! -_-+++
안되것다 싶어 GroundingDINO를 사용하는 샘플 프로젝트를 찾아서 빌드 도전!!
찾았다!!! https://colab.research.google.com/github/betogaona7/Grounded-Segment-Anything/blob/main/grounded_sam_colab_demo.ipynb#scrollTo=uSJqZHr3JTSB 하지만 jupyter notebook!!
로컬에서 테스트 할 수 있게 코드를 변경했습니다. (코드 설명은 생략합니다. 필요하신 내용이 있으면 댓글로 문의해 주세요. 테스트 샘플 코드는 이곳에 올려두었습니다. https://github.com/blackwitch/grounded_sam_colab_demo/blob/main/main.py)
위 샘플 코드를 실행해서 GroundingDINO가 어떻게 하면 잘 빌드/실행되는지 확인해 보기로 했습니다.
우선 content라는 폴더를 만들고 안에서 git clone https://github.com/IDEA-Research/Grounded-Segment-Anything 로 프로젝트를 복제합니다. 그리고 Grounded-Segment-Anything 폴더를 간단히 GSA로 변경한 후 필요한 패키지를 설치합니다.
content/GSA 에서 필요한 패키지를 설치합니다. pip install -q -r requirements.txt
content/GSA/segment_anything에서 pip install -q . 을 실행합니다.
content/GSA/GroundingDINO에서 pip isntall -q . 을 실행합니다.
이렇게 하면 설치가 모두 종료됩니다.
실행해보니 정상적으로 잘 됩니다.
다시 처음으로 돌아가보면.. "... import _C"에서 _C는 C/C++로 작성된 확장 모듈을 파이썬에서 사용하기 위해 사용되는 심볼입니다. 아마 web ui에 설치할 때 모듈이 제대로 빌드가 안된 것으로 보였습니다.
content\GSA\GroundingDINO\build\lib.win-amd64-cpython-310\groundingdino 와 stable-diffusion-webui\venv\Lib\site-packages\groundingdino 를 비교해보니 _C.cp310-win_amd64.pyd 파일이 없더군요.
다시 설치하기도 귀찮아서 pyd 파일 복사해두고 잘 쓰고 있습니다.
분명 처음 설치할 때 에러가 났을텐데 당연히 잘 설치되었거니 하고 다~~ 흘려 보낸 댓가로 -_-a
저 같은 실수 안하시길... -_-a
'개발 이야기 > 개발툴 및 기타 이야기' 카테고리의 다른 글
windows 11 linux docker에서 gpu 사용할 수 있는 개발환경 만들기 (0) | 2023.08.10 |
---|---|
Stable diffusion을 업무에 활용하기 #4 캐릭터 전용 학습 툴 제작기 (0) | 2023.08.03 |
Postman website에서 request 시도 시 Cloud Agent Error (0) | 2023.05.10 |
Fine-tuning LLMs with PEFT and LoRA (자막) (0) | 2023.05.04 |
langchain 최신 버전 설치하기 (0) | 2023.04.28 |