$ show keras-team/autokeras
AutoKeras is an automated machine learning (AutoML) library built on Keras 3, designed to make deep learning accessible to non-experts. It provides high-level task-specific APIs (e.g., ImageClassifier, TextClassifier, StructuredDataClassifier) that automate neural architecture search and hyperparameter tuning. The core architecture uses a modular block-based systemβblocks (e.g., DenseBlock, ConvBlock, ResNetBlock) are composed into a graph via a functional API, and a tuner (Greedy, Bayesian, Hyperband, Random) searches for the best model. The library includes a data preprocessing pipeline (Pipeline, HyperPipeline), adapters for input/output conversion, and serialization for model persistence. While primarily an application library, it also contains research-oriented components like benchmark experiments and tuner implementations, reflecting its academic origins. Key entry points are the AutoModel class and task classes, which expose fit/predict/evaluate workflows similar to Keras.
The LLM identified 3 files worth highlighting for reuse:
Contains reusable neural network building blocks (DenseBlock, ConvBlock, RNNBlock, ResNetBlock, EfficientNetBlock, XceptionBlock, Embedding) that can be composed into a search space graph. Each block is serializable via get_config/from_config and supports hyperparameter tuning. The pattern is clean, modular, and could be extracted for use in other Keras-based AutoML or search space definition projects.
Defines the abstract Block base class that all neural network blocks extend. It standardizes the interface for building Keras models, injecting hyperparameters, and serialization. The pattern demonstrates a well-structured inheritance hierarchy that enforces consistency across block implementations and supports saving/loading model configurations.
Implements InputAdapter classes that convert raw data (numpy arrays, pandas DataFrames, tf.data.Datasets) into a standardized format suitable for Keras models. The adapter pattern is reusable for any data preprocessing pipeline that needs to handle diverse input types and validate shapes/dtypes before feeding into a model.