Model training and predictions were performed in Kaggle TPU Kernels.
- Python 3.7.6 (Python packages are detailed separately in
requirements.txt
) - Kaggle's TPU v3-8 (8 cores)
- SIIM-ISIC Melanoma Classification
- ISIC 2019 TFRecords 256x256
- ISIC 2019 TFRecords 384x384
- ISIC 2019 TFRecords 512x512
- ISIC 2019 TFRecords 768x768
- Melanoma TFRecords 256x256
- Melanoma TFRecords 384x384
- Melanoma TFRecords 512x512
- Melanoma TFRecords 768x768
- melanoma_hairs
We trained 8 image models, as shown below:
Model | Data | Image size | Epochs | Hair augmentation |
---|---|---|---|---|
1 | 2020 | 256x256 | 13 | |
2 | 2020 | 384x384 | 15 | |
3 | 2020 | 512x512 | 15 | |
4 | 2020 | 768x768 | 15 | |
5 | 2019-2020 | 256x256 | 25 | X |
6 | 2019-2020 | 384x384 | 25 | X |
7 | 2019-2020 | 512x512 | 12 | X |
8 | 2019-2020 | 768x768 | 10 |
To reproduce our results, the Kaggle notebook must be forked and executed 8 times, one for each model, changing only the content of the first cell (input) each time.
For example, for model 1, the content of the input cell should be:
tfrec_shape = 256
comp_data = "2020"
For model 6, however, it should be:
tfrec_shape = 384
comp_data = "2019-2020"
Training time for a single model ranges from ~ 0.5 to ~ 3 hours (all models can be fitted within 3 hours Kaggle's TPU limit for a single session).
The source code for making predictions is published in this Kaggle notebook. It can also be found in "./kaggle_notebooks"
.
Again, to reproduce our results, the Kaggle notebook must be forked and executed 8 times, one for each model, changing only the content of the first cell (input) each time.
Our image-models submission files can be found in "./submissions/image_data"
.
For metadata, I used a simple baseline model proposed by @titericz, which can be found here. The training model was adapted from rajnishe (thanks to @rajnishe) and ajaykumar7778 (thanks to @ajaykumar7778).