mewc-flow
August 21, 2024 ยท View on GitHub
mewc-flow
This repository contains the Dockerfile and docker-compose.yml files used to build the mewc-flow Docker image. The mewc-flow Docker image serves as the base image for the mewc-train and mewc-predict Docker images, which are used for Efficient Net v2 training and prediction for wildlife camera trap images.
The mewc-flow image is built on top of the latest stable Python image and includes additional dependencies required by Efficient Net v2 models.
Version 2 Updates
The mewc-flow Docker image has been updated to version 2. Key updates include:
- Base Image: Upgraded to
tensorflow/tensorflow:2.16.1-gpu. - CUDA Support: Added environment variables for CUDA and cuDNN, and installed
JAXandJAXLIBwith CUDA 12 support. - Updated Dependencies: The
requirements.txtfile has been updated with the latest versions of key packages, includingjax,keras,pandas, and others. - Model Support: Although we default to EfficientNetv2, the ConvNeXt and ViT families are also available. All are sourced via the kimm model zoo API: https://github.com/james77777778/keras-image-models
For users who wish to continue using version 1, the older Dockerfile and requirements can still be accessed by checking out the v1.0.11 tag:
git checkout v1.0.11
Efficient Net v2
Efficient Net v2 is a scalable neural network architecture designed for efficiency and accuracy, which is particularly suited to the classification of wildlife images. More information about Efficient Net v2 can be found in its official documentation:
Building the Docker Image
This repository uses docker-compose to build the Docker image. To build the mewc-flow Docker image, clone this repository and use the docker-compose command:
git clone https://github.com/zaandahl/mewc-flow.git
cd mewc-flow
docker-compose up --build
This will create a Docker image named zaandahl/mewc-flow.
Docker Image Contents
The Docker image contains:
- Python environment with the requirements from requirements.txt file installed.
- Necessary utilities (ffmpeg, libsm6, libxext6, nvidia-modprobe, numactl, git, wget, vi) installed.
- Source code copied into the /code directory in the container.
- JAX and JAXLIB installed with CUDA 12 support for enhanced performance.
For detailed information about the image contents, please refer to the Dockerfile in this repository.
GitHub Actions and DockerHub
This project uses GitHub Actions to automate the build process and push the Docker image to DockerHub. You can find the image at:
For users needing the older version, the v1.0.11 image is also available on DockerHub by using the appropriate tag:
docker pull zaandahl/mewc-flow:v1.0.11