상세 컨텐츠

본문 제목

Pytorch 컨테이너 생성 후 사용

데이터 과학

by Taeyoon.Kim.DS 2023. 8. 31. 21:47

본문

docker pull pytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel

docker run -it --gpus all -p 8888:8888  04c0663041d9 으로 container 실행.

jupyter lab --ip=0.0.0.0 --port=8888 --allow-root 으로 jupyter lab 실행.

!apt-get update \
    && apt-get install -y wget unzip vim git 을 새로운 jupyter note에서 실행.

git clone https://github.com/ewankim1023/yolov5_custom_submodule.git 을 Terminal에서 실행.

git config --global user.email taeyoon.kim@snapdragon-ip.com
git config --global user.name Taeyoon Kim

 

 

https://seonybob3210.tistory.com/33

 

[docker] pytorch 컨테이너 생성 후 컨테이너 안에서 jupyter lab 실행

Pytorch 컨테이너 생성하기 본인의 cuda version을 확인 후에 그에 알맞는 pytorch image 파일을 다운로드 받아야 한다. -> cuda 사용 가능한 pytorch image 파일을 다운로드 받는다고 생각하자. cuda version은 nvcc

seonybob3210.tistory.com

!git clone https://github.com/ultralytics/yolov5

 

GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.

github.com

에서 에러를 발생함. Docker 컨테이너에서 git: not found 오류가 발생한 것은 컨테이너에 Git이 설치되어 있지 않기 때문입니다. Git은 리눅스 기반 시스템에서 코드 저장소를 관리하는 데 사용되는 도구입니다.

/usr/bin/sh: 1: git: not found
동적으로 Git 설치하기
이 방법은 Docker 컨테이너를 실행할 때 Git을 동적으로 설치하는 것입니다. Docker 컨테이너를 실행할 때 다음 명령어를 사용하여 Git을 설치할 수 있습니다:
docker run -it --rm my_container_image /bin/bash -c "apt-get update && apt-get install -y git && jupyter lab"​

그 후에 다시 container를 commit

 

 

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

이러한 에러가 나는 가장 큰 이유는 cv2의 dependency 라이브러리 파일들 중 일부가 설치가 안 되어 있어서 생기는 에러. 보통 우분투를 로컬 머신에 설치하면 거의 일어나지 않는 경우이나, Docker 이미지나 EC2 프리티어 버전 등에서는 이러한 에러가 잘 발생함.
https://velog.io/@neos960518/%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0%EB%B2%95-ImportError-libGL.so.1-cannot-open-shared-object-file-No-such-file-or-directory

 

에러 해결법: ImportError: libGL.so.1: cannot open shared object file: No such file or directory

Ubuntu 도커 이미지 상에서 혹은 EC2 ubuntu나 ECS 등에서 opencv-python를 설치한 뒤 cv2를 import하려고 할 때 다음과 같은 에러 메세지를 마주할 수 있다.이러한 에러가 나는 가장 큰 이유는 cv2의 dependency

velog.io

!apt-get update && apt-get -y install libgl1-mesa-glx

로 jupyter lab안에서 설치를 시도하였음.

opencv는 headless로 설치.

!pip uninstall opencv-python-headless --yes
!pip install opencv-python-headless==4.5.1.48

 

error: Command "gcc -pthread -B /opt/conda/compiler_compat -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/conda/include -fPIC -O2 -isystem /opt/conda/include -fPIC -DNPY_INTERNAL_BUILD=1 -DHAVE_NPY_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -DSCIPY_MKL_H -DHAVE_CBLAS -I/usr/local/include -I/usr/include -I/opt/conda/include -Ibuild/src.linux-x86_64-3.10/numpy/core/src/umath -Ibuild/src.linux-x86_64-3.10/numpy/core/src/npymath -Ibuild/src.linux-x86_64-3.10/numpy/core/src/common -Inumpy/core/include -Ibuild/src.linux-x86_64-3.10/numpy/core/include/numpy -Inumpy/core/src/common -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/opt/conda/include/python3.10 -Ibuild/src.linux-x86_64-3.10/numpy/core/src/common -Ibuild/src.linux-x86_64-3.10/numpy/core/src/npymath -c build/src.linux-x86_64-3.10/numpy/core/src/multiarray/scalartypes.c -o build/temp.linux-x86_64-3.10/build/src.linux-x86_64-3.10/numpy/core/src/multiarray/scalartypes.o -MMD -MF build/temp.linux-x86_64-3.10/build/src.linux-x86_64-3.10/numpy/core/src/multiarray/scalartypes.o.d" failed with exit status 1
            [end of output]
      
        note: This error originates from a subprocess, and is likely not a problem with pip.
        ERROR: Failed building wheel for numpy
      Failed to build numpy
      ERROR: Could not build wheels for numpy, which is required to install pyproject.toml-based projects
      
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

엄청난 에러 발생했으나 roboflow에서 image를 다운로드 받는 것은 성공함.

!pip install roboflow

from roboflow import Roboflow
rf = Roboflow(api_key="SgaLxwdHL2ih3at97c7N")
project = rf.workspace("logodetection-9ixsl").project("10488")
dataset = project.version(1).download("yolov5")

해당 에러는

AttributeError: module 'cv2' has no attribute 'setNumThreads'

https://github.com/ultralytics/ultralytics/issues/893

 

When importing ultralytics, I get AttributeError: module 'cv2' has no attribute 'setNumThreads' ? · Issue #893 · ultralytics/u

Search before asking I have searched the YOLOv8 issues and discussions and found no similar questions. Question When running from ultralytics import YOLO, the output is: ~\anaconda3\lib\site-packag...

github.com

여기 나온 방법으로 해결해보려함.

!pip install opencv-python==4.6.0.66 으로 해결됨.

 

 

2차 에러는, utils/data_loader.py의 num_workers=nw를 num_workers=0으로 변경하면 해결가능함.

RuntimeError: DataLoader worker (pid(s) 5893, 5901) exited unexpectedly
 

'데이터 과학' 카테고리의 다른 글

pipenv install --deploy와 --dev  (0) 2023.10.31
PaddleOCR Result값의 변경  (1) 2023.10.31
AWS 의 AMI rebuild with CPU only EC2 instance  (0) 2023.10.31
Cosine Similarity  (0) 2023.10.18
MLOps를 위한 인프라와 도구  (0) 2023.09.17

관련글 더보기