- 💪 Challenge Page: https://www.aicrowd.com/challenges/learning-to-smell
- 🗣️ Discussion Forum: https://www.aicrowd.com/challenges/learning-to-smell/discussion
- 🏆 Leaderboard: https://www.aicrowd.com/challenges/learning-to-smell/leaderboards
git clone https://github.com/AIcrowd/learning-to-smell-starter-kit
cd learning-to-smell-starter-kit
pip install -r requirements.txt
Download all the files from the AIcrowd Resources page,
and put them in the data/
folder. This should give you a folder structure similar to :
.
├── data
│ ├── test.csv
│ ├── train.csv
│ ├── train-additional.csv
│ └── vocabulary.txt
NOTE: If you have not accepted the challenge rules (by clicking on the Participate
button), you will be asked to agree to the Rules of the competition at this point.
This should generate a submission.csv file, which you can upload by clicking on Create Submission
on the challenge page.
python random_predict.py
This implementation was added as Community Contribution by @latticetower (@lacemaker on AIcrowd) here. We have ported it on official starter kit as an example.
python fingerprint_predict.py
Coming Soon
We have created this sample submission repository which you can use as reference.
Each repository should have a aicrowd.json file with the following fields:
{
"challenge_id" : "learning-to-smell",
"grader_id": "learning-to-smell",
"authors" : ["aicrowd-user"],
"description" : "Learning to Smell challenge submission",
"license" : "MIT",
"gpu": false
}
This file is used to identify your submission as a part of the Learning to Smell challenge. You must use the challenge_id
and grader_id
specified above in the submission. The gpu
key in the aicrowd.json
lets your specify if your submission requires a GPU or not. In which case, a NVIDIA-K80 will be made available to your submission when evaluation the submission.
You can specify software runtime of your code by modifying the included requirements.txt. The submission support adding custom conda environment, apt packages, Dockerfile and lot's more. Guide for advanced users is present here.
In order to test end to end pipeline, you can make debug submission as well by making "debug": true
in aicrowd.json
.
- Wouldn't be counted towards your daily submission limit, and have seperate counter
- Scores of such submission wouldn't be counted for the leaderboard
- Testing data would be same as subset of training data
- Logs of your code will be available to you
The evaluator will use run.sh
as the entrypoint, which in turn uses predict.py
. Please remember to instantiate your class in the same or change run.sh
.
You can refer to random_predict.py for structuring your codes. We will be running your code as specified in evaluator/learning_to_smell.py
. The class has placeholders for testing code, but it isn't required for making submission.
class SuperCoolPredictor:
"""
Below paths will be preloaded for you, you can read them as you like.
"""
self.training_data_path = None
self.training_additional_data_path = None
self.test_data_path = None
self.vocabulary_path = None
"""
This function will be called for all the smiles string one by one during the evaluation.
The return need to be a list of list. Example: [["burnt", "oily", "rose"], ["fresh", "citrus", "green"]]
NOTE: In case you want to load your model, please do so in `predict_setup` function.
"""
def predict(self, smile_string):
[...]
return SENTENCES
"""
You can do any preprocessing required for your codebase here like loading up models into memory, etc.
"""
def predict_setup(self):
pass
- Prediction setup i.e.
def predict_setup
has timeout of 10 minutes (600 seconds) - Prediction i.e.
def predict
has timeout of 1 second per smile string.
You can run your submission locally using python3 predict.py
and verify the generated prediction csv.
To make a submission, you will have to create a private repository on https://gitlab.aicrowd.com.
You will have to add your SSH Keys to your GitLab account by following the instructions here. If you do not have SSH Keys, you will first need to generate one.
Testing that everything is set up correctly To test whether your SSH key was added correctly, run the following command in your terminal
ssh -T git@gitlab.aicrowd.com
Then you can create a submission by making a tag push to your repository, adding the correct git remote and pushing to the remote:
git clone https://github.com/AIcrowd/learning-to-smell-starter-kit
cd learning-to-smell-starter-kit
# Add AIcrowd git remote endpoint
git remote add aicrowd git@gitlab.aicrowd.com:<YOUR_AICROWD_USER_NAME>/learning-to-smell-starter-kit.git
git push aicrowd master
# Create a tag for your submission and push (tag should start with `submission-` prefix)
git tag submission-v0.1
git push aicrowd master
git push aicrowd submission-v0.1
# Note : If the contents of your repository (latest commit hash) does not change,
# then pushing a new tag will not trigger a new evaluation.
You now should be able to see the details of your submission at : gitlab.aicrowd.com/<YOUR_AICROWD_USER_NAME>/learning-to-smell-starter-kit/issues
Best of Luck