Quantum dot autotuning with machine learning V2. First version available here (private repository).
The model training and the offline autotuning simulations use the QDSD dataset, which is generated using this repository.
Required python >= 3.10
and pip
pip install -r requirements.txt
Then download the QDSD dataset
and unzip in into a data
folder at the root of this project. The mandatory files are:
- data/interpolated_csv.zip
- data/labels.json
Create a file settings.yaml
to override settings documented in utils/settings.py
For example:
run_name: tmp
seed: 0
logger_console_level: info
show_images: False
model_type: CNN
trained_network_cache_path: out/cnn/best_network.pt
dropout: 0.6
nb_train_update: 30000
python3 start_lines.py
Note: The QDSD dataset should be downloaded and extracted in the
data
folder.
python3 start_tuning_offline.py
Note: If the
trained_network_cache_path
setting is not set, the script will run the line classification task first to train a new model.
python3 start_tuning_online.py
Note: The
trained_network_cache_path
need to be set.A
connectors
need to be implemented to communicate with the experimental equipment. See connectors/py_hegel.py for an example.
python3 start_full_exp.py --seed 42000
Note: The
--seed
argument could be incremented to repeat the experiment with different random seeds.Running this script can take several days (3 days with a GPU 3070Ti).
autotuning/
: The different autotuning algorithm implementationscircuit_simulation/
: Code to generate circuit description, run circuit simulation and benchmark the resultsclasses/
: Custom classes and data structure definitionconnectors/
: Interface to connect with experimental measurement tools (for online diagrams tuning)datasets/
: Diagrams loading and datasets in pyTorch formatmodels/
: Neural network definitions in pyTorch format and baseline modelsdocumentation/
: Documentation and process descriptionplots/
: Code to generate figuresruns/
: Code logic for the execution of the different tasksutils/
: Miscellaneous utility code (output handling, settings, etc.)start_full_exp.py
: Script to run the complete experiment benchmark (line and autotuning tasks repeated with different meta-parameters)start_tasks_planner.py
: Script to automatize several benchmarks with grid-searchstart_lines.py
: Main file to start the line classification taskstart_tuning_[online|offline].py
: Main files to start the charge state autotuning task (either online or offline)
data/
: Contains QDSD diagrams data (**should be downloaded by the user **).out/
: Generated directory that contains run results log and plots ifrun_name
setting field is defined. The outputs from the paper can be downloaded here.settings.yaml
: Projet configuration file (should be created by the user)
- Victor Yon: Main developer
- Bastien Galaup: Contributor
- Yohan Finet: Integrate circuit simulation and hardware-aware methods