FormFighterAIStack / Dockerfile
JulianPhillips's picture
Update Dockerfile
1827bea verified
raw
history blame
1.74 kB
# Base image with PyTorch and CUDA for GPU support
FROM pytorch/pytorch:1.10.0-cuda11.3-cudnn8-runtime
# Install system dependencies
RUN apt-get update && apt-get install -y \
git \
wget \
&& rm -rf /var/lib/apt/lists/*
# Install Python packages including Hugging Face Transformers, TorchScript, Flask, and TensorFlow
RUN pip install --no-cache-dir \
torch \
torchvision \
transformers \
requests \
Flask \
Pillow \
huggingface_hub \
tensorflow
# Set Hugging Face cache to a guaranteed writable directory
ENV TRANSFORMERS_CACHE=/tmp/cache
RUN mkdir -p /tmp/cache
# Create directories for the models
RUN mkdir -p /models/movenet /models/motionbert
# Python script to download models using tensorflow_hub and huggingface_hub
RUN echo "import os\n\
import tensorflow_hub as hub\n\
\n\
# Download MoveNet model from TensorFlow Hub\n\
movenet_model = hub.load('https://tfhub.dev/google/movenet/singlepose/lightning/4')\n\
movenet_model_path = '/models/movenet/movenet_lightning'\n\
os.makedirs(movenet_model_path, exist_ok=True)\n\
movenet_model.save(movenet_model_path)\n\
\n\
# Download MotionBERT model and tokenizer using huggingface_hub\n\
from huggingface_hub import hf_hub_download\n\
from transformers import AutoModel, AutoTokenizer\n\
AutoModel.from_pretrained('walterzhu/MotionBERT').save_pretrained('/models/motionbert')\n\
AutoTokenizer.from_pretrained('walterzhu/MotionBERT').save_pretrained('/models/motionbert')" > download_models.py
# Run the script to download models
RUN python download_models.py
# Copy the inference script (app.py) into the container
COPY app.py /app/app.py
# Expose the default port for Flask
EXPOSE 7860
# Run the Flask app
CMD ["python", "/app/app.py"]