## Motivation

Despite the success of CNNs and, more recently, transformers, the scale of deep learning models has grown exponentially due to the rapid development of computational resources. Going forward, it is critical to focus on the practical training and inference efficiency of these models, as well as ensuring that even the largest models have viable real-world applications. Moreover, compute efficiency of computer vision models is becoming increasingly crucial for downstream tasks such as segmentation, object tracking, and action recognition, among others.

There exist several different directions towards making deep learning efficient for computer vision, thereby leading to a reduction in the required computational memory or the associated training and inference time. This competition will aim at bringing research efforts into practice for one such direction: *budget-aware model training*. Most research that exists focuses on making deep learning methods efficient, however, the resource associated with real-world AI devices can vary drastically, and a method termed efficient for a certain choice of resource budgets might be completely inefficient for a different one. This competition will also focus on methods that aim at performing budget-aware model training in best possible ways under limited GPU memory memory as well as limited training time.

**This challenge is part of the ICCV 2023 Resource-Efficient Deep Learning (RCV) Workshop to be held between Oct 2-5, 2023 in Paris, France.**

## Problem description
As part of this budgeted model training challenge, we pose the problem of the classification of ImageNet100. The goal is to build the best possible classifier for classifying the samples of ImageNet100 into one of the pre-defined 100 classes. However, there are certain rules to be respected to qualify as a winning solution. 
1. For final evaluation, each submitted solution will be used to train ImageNet100 with a different set of 100 classes than those revealed here. The score on this corresponding test set will be used to decide the performance of the model. 
2. All the models will be trained on a P100 GPU card along with 4 cpu cores for a maximum of 9 hours.
3. The GPU memory consumption should not exceed 6 GB at any point of the training process of the final evaluation.
4. Note that your code should not use any pretrained models and we will be training your models in the absence of internet, so make sure your code does not depend on any external pretrained models. 
5. Together with your code (only python scripts), you will be required to submit the run environment as a .yaml that will be used to run the code.
6. The main script file should be named main.py and should take only one command line argument --data_dir to produce a submission.csv in the current working directory.

This competition will be running in two phases: **Phase I** and **Phase II**. 

**Phase I**: This phase is a standard classification problem where the goal is to maximize the accuracy on the test set and improve the ranking on the leaderboard. This phase of the competition will be hosted here on Kaggle and the leaderboard of Kaggle will be used to rank the solutions. Note that this phase will only use accuracy as the evaluation measure. Although this phase does not take the GPU memory and time constraint into consideration, participants are recommended to adhere to an approximate estimate and use the leaderboard to assess the performance of their efficient models that could pass on to the next Phase. **Using very large networks and pretrained models, that cannot later qualify the time and memory constraint criterion, is highly discouraged, since this will improve your ranking in Phase I, but will not be able to qualify you for Phase II.** See the rules stated above for more details.

**Phase II**: We will post a baseline solution and all solutions that obtain an accuracy higher than baseline accuracy will be eligible to submit their solutions for Phase II. For details on the evaluation of the solutions for this phase, see the final evaluation details describe for the final evaluation above. This phase will be in an offline mode and results can be viewed at [Phase II Leaderboard](https://sites.google.com/view/rcv2023/leaderboard-workshop-challenges). We will keep updating the leaderboard on a rolling basis, however, every solution can be expected to get reflected on the leaderboard in 5 days from the day of the submission. Every team will be able to submit their two best solutions in one instance. For the start date of this phase, check the timeline page.

## Challenge Organizer team
For details related to the organizing team, see https://sites.google.com/view/rcv2023/organizing-committee
