qbiocode.utils.generate_qml_configs module#
Generate configuration files for quantum machine learning grid search experiments.
This module provides utilities to generate multiple YAML configuration files for systematic hyperparameter tuning of quantum machine learning models.
Summary#
Functions:
Generate YAML configuration files for quantum ML hyperparameter grid search. |
Reference#
- generate_qml_experiment_configs(template_config_path, output_dir, data_dirs, qmethods=None, reps=None, optimizers=None, entanglements=None, feature_maps=None, ansatz_types=None, n_components=None, Cs=None, max_iters=None, embeddings=None, data_sample_fraction=1.0, used_files_path=None, random_seed=None)[source]#
Generate YAML configuration files for quantum ML hyperparameter grid search.
This function creates multiple configuration files by combining different hyperparameter values for quantum machine learning models (QNN, VQC, QSVC). Each configuration file can be used with QProfiler to run systematic experiments.
- Parameters:
template_config_path (str) – Path to the template YAML configuration file.
output_dir (str) – Directory where generated config files will be saved.
data_dirs (List[str]) – List of directories containing CSV dataset files.
qmethods (List[str], optional) – Quantum methods to test. Default: [‘qnn’, ‘vqc’, ‘qsvc’]
reps (List[int], optional) – Number of repetitions for ansatz layers. Default: [1, 2]
optimizers (List[str], optional) – Optimizers to use. Default: [‘COBYLA’, ‘SPSA’]
entanglements (List[str], optional) – Entanglement patterns. Default: [‘linear’, ‘full’]
feature_maps (List[str], optional) – Feature map encodings. Default: [‘Z’, ‘ZZ’]
ansatz_types (List[str], optional) – Ansatz types for QNN/VQC. Default: [‘amp’, ‘esu2’]
n_components (List[int], optional) – Number of components for dimensionality reduction. Default: [5, 10]
Cs (List[float], optional) – Regularization parameters for QSVC. Default: [0.1, 1, 10]
max_iters (List[int], optional) – Maximum iterations for optimization. Default: [100, 500]
embeddings (List[str], optional) – Embedding methods. Default: [‘none’, ‘pca’, ‘lle’, ‘isomap’, ‘spectral’, ‘umap’, ‘nmf’]
data_sample_fraction (float, optional) – Fraction of data files to use (0.0-1.0). Default: 1.0
used_files_path (str, optional) – Path to CSV file tracking previously used data files.
random_seed (int, optional) – Random seed for reproducible file sampling.
- Returns:
Number of configuration files generated and path to used files CSV.
- Return type:
Tuple[int, str]
Examples
>>> from qbiocode.utils import generate_qml_experiment_configs >>> >>> # Generate configs for quantum model grid search >>> num_configs, used_files = generate_qml_experiment_configs( ... template_config_path='configs/config.yaml', ... output_dir='configs/qml_gridsearch', ... data_dirs=['data/tutorial_test_data/lower_dim_datasets'], ... qmethods=['qnn', 'vqc'], ... reps=[1, 2], ... n_components=[5, 10], ... data_sample_fraction=0.1 # Use 10% of files for testing ... ) >>> print(f"Generated {num_configs} configuration files")
Notes
Quantum models (QNN, VQC, QSVC) don’t support automated grid search
This function generates separate config files for each hyperparameter combination
Run QProfiler separately for each generated config file
- The function automatically handles model-specific constraints:
QSVC uses only ‘amp’ ansatz and ‘COBYLA’ optimizer
QNN/VQC don’t use the C parameter
Embedding is set to ‘none’ when n_components >= original feature count
See also
qbiocode.apps.qprofilerMain profiling application