A tutorial and demo using Hyperopt to auto-optimize CNN architecture and hyperparameters for the CIFAR-100 dataset with Keras/TensorFlow.
Hyperopt-Keras-CNN-CIFAR-100 is a tutorial and demonstration project that automates neural architecture search and hyperparameter optimization for convolutional neural networks on the CIFAR-100 dataset. It uses Hyperopt with Keras and TensorFlow to meta-optimize both network architecture and training parameters, solving the problem of manual tuning in deep learning projects.
Machine learning practitioners and researchers working on computer vision tasks who want to automate hyperparameter tuning and neural architecture search using Keras/TensorFlow.
Developers choose this project because it provides a complete, working example of automated optimization that goes beyond basic hyperparameter tuning to include architectural decisions, with clear code that can be adapted to other datasets and tasks.
Auto-optimizing a neural net (and its architecture) on the CIFAR-100 dataset. Could be easily transferred to another dataset or another classification task.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
It treats CNN layer configurations like conv-pool layers and residual connections as tunable hyperparameters, allowing Hyperopt to automatically discover optimal designs beyond basic tuning.
Uses Hyperopt's Tree-structured Parzen Estimator to intelligently search a wide hyperspace including learning rates and dropout, with results saved in 'results.pkl' for resumable meta-optimization.
Integrates TensorBoard for training monitoring and provides gradient ascent code in 'conv_filters_visualization.py' to visualize CNN filter activations, aiding model interpretation.
Designed to be easily adapted to other vision datasets or tasks, with the README noting that editing 'neural_net.py' allows use with CIFAR-10 or similar projects.
As a 2017 project, it likely relies on older versions of Keras and TensorFlow, which may have compatibility issues with modern libraries and lack support for newer features.
Requires manual GPU backend installation and generates large TensorBoard logs (e.g., 7 GB for best model), adding complexity and storage overhead not ideal for lightweight environments.
The best accuracy on CIFAR-100 is 67.61%, which the README admits is only comparable to middle-tier results, limiting its use for cutting-edge applications without further modifications.