Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Dockerfile for Installation #1057

Open
pranavgundewar opened this issue Jul 25, 2022 · 4 comments
Open

Create Dockerfile for Installation #1057

pranavgundewar opened this issue Jul 25, 2022 · 4 comments

Comments

@pranavgundewar
Copy link

As title mentions, can we have a dockerfile for codebase installation?

Thank you!

@optimuspaul
Copy link

optimuspaul commented Aug 9, 2022

I had one that worked for a while. But now I can't get Alphapose to build at all. #1002

Here is what I have so far

FROM nvidia/cuda:11.6.0-devel-ubuntu20.04

RUN apt clean

RUN DEBIAN_FRONTEND=noninteractive apt update && DEBIAN_FRONTEND=noninteractive apt install -y --allow-change-held-packages \
    ffmpeg \
    git \
    build-essential \
    ninja-build \
    cuda-libraries-11-6 \
    mesa-common-dev \
    libosmesa6 libosmesa6-dev \
    libgles2-mesa-dev \
    libglu1-mesa-dev \
    libgles2-mesa-dev \
    libcublas-11-6 \
    libcublas-dev-11-6 \
    libcusparse-dev-11-6 \
    cuda-nvcc-11-6 \
    libcusolver-dev-11-6 \
    cuda-nvrtc-dev-11-6 \
    libcurand-dev-11-6 \
    cuda-nvml-dev-11-6 \
    libcufft-dev-11-6 \
    cuda-toolkit-11-6 \
    nvidia-cuda-toolkit \
    libyaml-dev

ENV CUDA_HOME='/usr/local/cuda'

RUN DEBIAN_FRONTEND=noninteractive apt -y install python3 python3-pip

RUN pip install "torch==1.12.1+cu116" torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
RUN pip install opencv-contrib-python-headless
RUN pip install pip --upgrade

RUN pip install cython pycocotools

RUN python3 -c "import torch; print(torch.version.cuda)" 

RUN mkdir /build
RUN cd /build && git clone https://github.com/HaoyiZhu/HalpeCOCOAPI.git
RUN cd /build && git clone https://github.com/WildflowerSchools/AlphaPose.git


RUN cd /build/HalpeCOCOAPI/PythonAPI && python3 setup.py build develop --user

WORKDIR /build/AlphaPose

RUN TORCH_CUDA_ARCH_LIST="6.1;7.5;8.6" python3 setup.py build develop --user

RUN apt install bc -y && \
    pip install boto3 && \
    python3 -c "import torchvision.models as tm; tm.resnet152(pretrained=True)"

edit: updated with my latest that actually builds fully.

@H4dr1en
Copy link

H4dr1en commented Apr 19, 2023

Updated Dockerfile, works as of today (also will download some model weights for you)

FROM nvidia/cuda:11.6.0-devel-ubuntu20.04

RUN apt clean

RUN DEBIAN_FRONTEND=noninteractive apt update && DEBIAN_FRONTEND=noninteractive apt install -y --allow-change-held-packages \
    ffmpeg \
    git \
    build-essential \
    ninja-build \
    cuda-libraries-11-6 \
    mesa-common-dev \
    libosmesa6 libosmesa6-dev \
    libgles2-mesa-dev \
    libglu1-mesa-dev \
    libgles2-mesa-dev \
    libcublas-11-6 \
    libcublas-dev-11-6 \
    libcusparse-dev-11-6 \
    cuda-nvcc-11-6 \
    libcusolver-dev-11-6 \
    cuda-nvrtc-dev-11-6 \
    libcurand-dev-11-6 \
    cuda-nvml-dev-11-6 \
    libcufft-dev-11-6 \
    cuda-toolkit-11-6 \
    nvidia-cuda-toolkit \
    libyaml-dev

ENV CUDA_HOME='/usr/local/cuda'

RUN DEBIAN_FRONTEND=noninteractive apt -y install python3 python3-pip python3-tk

RUN pip install "torch==1.12.1+cu116" "torchvision==0.13.1" "torchaudio==0.12.1" --extra-index-url https://download.pytorch.org/whl/cu116
RUN pip install opencv-contrib-python-headless
RUN pip install pip --upgrade

RUN pip install cython pycocotools

RUN python3 -c "import torch; print(torch.version.cuda)" 

RUN mkdir /build
RUN cd /build && git clone https://github.com/HaoyiZhu/HalpeCOCOAPI.git
RUN cd /build && git clone https://github.com/MVIG-SJTU/AlphaPose.git


RUN cd /build/HalpeCOCOAPI/PythonAPI && python3 setup.py build develop --user

WORKDIR /build/AlphaPose

RUN TORCH_CUDA_ARCH_LIST="6.1;7.5;8.6" \
    PATH=/usr/local/cuda/bin/:$PATH \
    LD_LIBRARY_PATH=/usr/local/cuda/lib64/:$LD_LIBRARY_PATH  \
    python3 setup.py build develop --user

# Fix compatibility issue with numpy >= 1.20
RUN pip install git+https://github.com/H4dr1en/cython_bbox.git@patch-1

RUN apt install bc -y && \
    pip install boto3 && \
    python3 -c "import torchvision.models as tm; tm.resnet152(pretrained=True)"

# Download weights, adapt to what you need
RUN pip install gdown && \
    mkdir -p detector/yolo/data && \
    gdown 1D47msNOOiJKvPOXlnpyzdKA3k6E97NTC -O detector/yolo/data/yolov3-spp.weights && \
    gdown 1S-ROA28de-1zvLv-hVfPFJ5tFBYOSITb -O pretrained_models/halpe26_fast_res50_256x192.pth

Use:

docker build -t alphapose .
docker run --rm --gpus all -it alphapose /bin/bash

Test:

python3 scripts/demo_inference.py --cfg configs/halpe_26/resnet/256x192_res50_lr1e-3_1x.yaml --checkpoint pretrained_models/halpe26_fast_res50_256x192.pth --indir examples/demo/ --save_img

@EthannHongg
Copy link

EthannHongg commented Sep 13, 2023

I tried both and can't get them to work. I changed cuda:11.6.0 to 11.6.2 because it keeps telling me it's not found.
It keeps giving me "IndexError: list index out of range" for when I don't use setup build in PythonAPI. But if I do build in PythonAPI it keeps telling me " x86_64-linux-gnu-gcc: error: ../common/maskApi.c: No such file or directory" but I have verified that the file does exist using "RUN ls /build/HalpeCOCOAPI/PythonAPI/common/maskApi.c".
Is there an updated version for the dockerfile?

@vuxminhan
Copy link

vuxminhan commented Oct 3, 2023

This works for me as of today


RUN apt clean

RUN DEBIAN_FRONTEND=noninteractive apt update && DEBIAN_FRONTEND=noninteractive apt install -y --allow-change-held-packages \
    ffmpeg \
    git \
    build-essential \
    ninja-build \
    cuda-libraries-11-8 \
    mesa-common-dev \
    libosmesa6 libosmesa6-dev \
    libgles2-mesa-dev \
    libglu1-mesa-dev \
    libgles2-mesa-dev \
    libcublas-11-8 \
    libcublas-dev-11-8 \
    libcusparse-dev-11-8 \
    cuda-nvcc-11-8 \
    libcusolver-dev-11-8 \
    cuda-nvrtc-dev-11-8 \
    libcurand-dev-11-8 \
    cuda-nvml-dev-11-8 \
    libcufft-dev-11-8 \
    cuda-toolkit-11-8 \
    nvidia-cuda-toolkit \
    libyaml-dev

ENV CUDA_HOME='/usr/local/cuda'


RUN DEBIAN_FRONTEND=noninteractive apt -y install python3 python3-pip python3-tk
RUN pip install pyyaml==5.2
RUN pip install scipy
RUN pip install numpy
RUN pip3 install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu113
# RUN pip install opencv-contrib-python-headless
# RUN pip install pip --upgrade
# RUN pip install wheel

# RUN pip install git+https://github.com/Ambrosiussen/HalpeCOCOAPI.git#subdirectory=PythonAPI

RUN python3 -c "import torch; print(torch.version.cuda)" 

RUN mkdir /build
RUN cd /build && git clone https://github.com/HaoyiZhu/HalpeCOCOAPI.git
RUN echo "from setuptools import setup, Extension\n\
import numpy as np\n\
\n\
# To compile and install locally run \"python setup.py build_ext --inplace\"\n\
# To install library to Python site-packages run \"python setup.py build_ext install\"\n\
\n\
ext_modules = [\n\
    Extension(\n\
        'halpecocotools._mask',\n\
        sources=['common/maskApi.c'],\n\
        include_dirs = [np.get_include(), 'common'],\n\
        extra_compile_args=[],\n\
    )\n\
]\n\
\n\
setup(\n\
    name='halpecocotools',\n\
    packages = ['halpecocotools'],\n\
    package_dir = {'halpecocotools': 'halpecocotools'},\n\
    install_requires=[\n\
        'setuptools>=18.0',\n\
        'cython>=0.27.3',\n\
        'matplotlib>=2.1.0',\n\
    ],\n\
    version='0.0.0',\n\
    description=\"COCO API for Halpe-Fullbody dataset\",\n\
    url=\"https://github.com/HaoyiZhu/HalpeCOCOAPI\",\n\
    ext_modules= ext_modules\n\
)" > /build/HalpeCOCOAPI/PythonAPI/setup.py


RUN cd /build/HalpeCOCOAPI/PythonAPI && python3 setup.py build develop --user
# Fix compatibility issue with numpy >= 1.20

RUN pip install cython
RUN pip install git+https://github.com/H4dr1en/cython_bbox.git@patch-1
RUN cd /build && git clone https://github.com/MVIG-SJTU/AlphaPose.git
WORKDIR /build/AlphaPose
# RUN python3 setup.py build develop
RUN TORCH_CUDA_ARCH_LIST="6.1;7.5;8.6" \
    PATH=/usr/local/cuda/bin/:$PATH \
    LD_LIBRARY_PATH=/usr/local/cuda/lib64/:$LD_LIBRARY_PATH  \
    python3 setup.py build develop --user



RUN apt install bc -y && \
    pip install boto3 && \
    python3 -c "import torchvision.models as tm; tm.resnet152(pretrained=True)"

# Download weights, adapt to what you need
RUN pip install gdown && \
    mkdir -p detector/yolo/data && \
    gdown 1D47msNOOiJKvPOXlnpyzdKA3k6E97NTC -O detector/yolo/data/yolov3-spp.weights && \
    gdown 1S-ROA28de-1zvLv-hVfPFJ5tFBYOSITb -O pretrained_models/halpe26_fast_res50_256x192.pth

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants