ENAS is evaluated on two TinyML benchmarks. Both must live under dataset/ with the
folder layout below before running any experiment (the paths are set in
configs/datasets/vww.yaml and configs/datasets/melanoma.yaml).
dataset/
├── vww_dataset/ # Visual Wake Words (generated from COCO 2014)
│ ├── train/{person,not_person}
│ ├── val/{person,not_person}
│ └── test/{person,not_person}
└── melanoma_cancer_dataset/ # Melanoma (downloaded from Kaggle)
├── train/{benign,malignant}
└── test/{benign,malignant}
VWW is derived from MS-COCO 2014 following Chowdhery et al. (2019): an image is
labelled person if any person bounding box covers more than 0.5% of the image area,
else not_person. Images are kept at original resolution; resizing happens in the
training pipeline.
cd dataset
mkdir -p coco && cd coco
wget http://images.cocodataset.org/zips/train2014.zip
wget http://images.cocodataset.org/zips/val2014.zip
wget http://images.cocodataset.org/annotations/annotations_trainval2014.zip
unzip train2014.zip && unzip val2014.zip && unzip annotations_trainval2014.zip
cd ..Expected layout: dataset/coco/{train2014,val2014,annotations}.
# from the dataset/ directory
python generate_vww_dataset.pyThis writes dataset/vww_dataset/{train,val}/{person,not_person} (COCO train2014 →
train, val2014 → val). Requires pycocotools, Pillow, tqdm.
The paper evaluates on a held-out test set sampled from the val split (seeded, 2000 images per class):
python create_test_dataset.pyThis writes dataset/vww_dataset/test/{person,not_person}. The seed (42) makes the test
split reproducible.
Binary classification (benign / malignant) of dermoscopic images. Download the Melanoma Skin Cancer Dataset of 10000 Images from Kaggle:
https://www.kaggle.com/datasets/hasnainjaved/melanoma-skin-cancer-dataset-of-10000-images
cd dataset
# requires a Kaggle API token (~/.kaggle/kaggle.json)
kaggle datasets download -d hasnainjaved/melanoma-skin-cancer-dataset-of-10000-images
unzip melanoma-skin-cancer-dataset-of-10000-images.zip -d melanoma_cancer_dataset_rawThe Kaggle archive ships train/ and test/ folders, each with benign/ and
malignant/ subfolders. Move/rename the extracted top-level folder to
dataset/melanoma_cancer_dataset/ so the paths match configs/datasets/melanoma.yaml.
python scripts/run_smoke_test.py # checks both datasets load and one tiny search runs- No resizing on disk. Both datasets are stored at native resolution; each experiment
resizes to its target
P_x × P_xat load time, which is why the same data serves all nine resolutions. - VWW area threshold (0.5%) follows the MLPerf Tiny / original VWW definition and is
configurable in
generate_vww_dataset.py(AREA_THRESHOLD). - Licensing. COCO images are subject to the COCO terms of use; the VWW labelling is a derivative. The Melanoma dataset is subject to the Kaggle/ISIC dataset terms.