ObjectNet Challenge
This page provides in-depth instructions on encapsulating your predictive model and code into a Docker image
for submission to the
ObjectNet Challenge.
Containerising your model and code in a Docker image provides a self-contained execution environment that allows the challenge platform to run your model and evaluate your results.
If you are not familiar with docker instructions are available on how to
install docker, along with a quick start guide.
Follow the steps outlined below to create a Dockerfile and build and test
your docker image. Upon successful completion of locally testing your docker container, you may then continue to submit your model to the challenge.
Select your instruction set
Challenge participants should use one of the following instructions that matches the framework used to create a docker image:
Docker internet access, memory and execution time constraints
The following restrictions will be placed on docker images submitted
for evaluation to the ObjectNet Challenge:
- Network access will be disabled for Docker containers submitted to the challenge,
i.e., your code and models will not be able to access the internet.
Ensure that any code and models packaged into the docker image are
self-contained and do not require access to the internet.
- Docker storage usage is limited to 15GB.
- An execution time limit of 2 hours has been set for submissions.
Submissions exceeding this time limit will be
interrupted and the submission will fail. To avoid exceeding the time limit
use optimisation techniques such as batching and parallel data loading to improve inference efficiency.
- Submissions are required to use GPUs for inferencing. Each GPU has 16GB of memory
allocated. Please ensure your models are able to operate within the 16GB memory
limit on the GPUs.
Managing Docker Artifacts
When you build and run docker images locally, and when you submit images for evaluation using the evalai push
command, docker images and containers are stored on your local hard drive. If you do not housekeep these containers and images, they can quickly consume a significant amount of space on your hard drive.
Housekeeping Docker images
To list the images stored locally use:
To remove an individual image use:
# docker rm <image> <image>
To remove dangling images. Dangling images are layers that have no relationship to any tagged images. They no longer serve a purpose and consume disk space.
# docker image prune <image> <image>
To list images matching a certain pattern:
# docker images -a | grep "pattern"
To remove images matching a certain pattern:
# docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
Housekeeping Docker containers
A docker container is essentially an instantiation of a docker image at runtime.
To list all containers:
To remove containers:
# docker rm <ID_or_Name> <ID_or_Name>
To remove all exited containers:
# docker rm $(docker ps -a -f status=exited -q)
To list containers matching a pattern:
# docker ps -a | grep "pattern”
To remove containers matching a pattern:
# docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm
Additional Information
For more information on housekeeping your docker environment see
How To Remove Docker Images, Containers, and Volumes
Other Docker resources
Docker base images
Whenever possible, use current Official Repositories as the basis to build your customised image:
Other information
For more info about using Caffe to build deep learning models.