majorization
Neural networks that can be trained to learn how to detect catalysis and self-catalysis of entanglement.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.4%) to scientific vocabulary
Repository
Neural networks that can be trained to learn how to detect catalysis and self-catalysis of entanglement.
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Majorization
Install dependencies:
For don't have conflicts, we recommend to create a virtual environment for run the code.
The requirements of them are listed in the file: requirements.txt.
Using Virtual Environment
- Install Python3 devel
- Create a virtual environment(venv) with Python 3.7
- Active venv
- Install requirements
Fedora Linux Ex:
``` sudo dnf install python3-devel
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements.txt ```
No Virtual Environment
- Use Python 3.7
- Install requirements
pip install -r requirements.txt --user
Run
Generate Samples
In the Jupyter Notebook file: data/GenerateSamples.ipynb you can specify the dimension, number of pair of samples to be created and run the code to generate an output file.
Note: All the combinations with the samples will be tested. So, if you choose 100 pairs of samples, 10000 combinations will be validated, in both ordenation (AB and BA).
Train a Sequential model
After generate the samples by the previous step, you can use the Jupyter Notebook file: ml_models/SequentialModel.ipynb to train a Sequential Model that will be responsible to predict, given a pair of vectors A and B, if the first one majorates the second one. For the training, you need to specify the dimension, number of samples (total), number of training epochs and the optimizer name to update the weights of the model.
- The Jupyter Notebook runner/run_sequential_training.ipynb contains an example of how to trigger the training of multiple sequential models with different parameters.
Self-Catalysis
Using a trained model and a set of samples, you can use the Jupyter Notebook runner/self_catalysis.ipynb to make self catalysis and check if the same model trained to predict majorization can predict self catalysis. In order to check the self catalysis performance, you need to specify the dimension and optimizer name.
- The Jupyter Notebook runner/run_self_catlysis.ipynb contains an example of how to trigger the self catalysis check of multiple dimensions and optimizers.
Self-Self-Catalysis
Using a trained model and a set of samples, you can use the Jupyter Notebook runner/self_self_catalysis.ipynb to make self self catalysis and check if the same model trained to predict majorization can predict self self catalysis. In order to check the self self catalysis performance, you need to specify the dimension, optimizer name and set the prediction flag (True - use a sequential model to predict the self catalysis output / False - use the original formula to get the self catalysis output)
- The Jupyter Notebook runner/run_self_self_catlysis.ipynb contains an example of how to trigger the self self catalysis check of multiple dimensions and optimizers.
Citation (citation.cff)
cff-version: 1.0.0
message: "If you use the ML models listed in this repository, please cite it as below."
authors:
- family-names: Matos Acacio
given-names: Thais
email: thaismatosacacio@hotmail.com
- family-names: Duarte
given-names: Cristhiano
email: cristhianoduarte@gmail.com
title: "Majorization ML Algorithms"
repository-code: "https://github.com/ThaisMatos/majorization"
date-released: 2021-12-27
GitHub Events
Total
Last Year
Dependencies
- keras ==2.3.1
- matplotlib ==3.5.1
- nbformat ==5.0.7
- numpy ==1.18.1
- pandas ==1.0.1
- plotly ==4.14.1
- tensorflow ==2.1.2