/PRL

Code to reproduce results of the paper "Machine learning-based classification of vector vortex beams"

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

Source code and data for the paper:

Taira Giordani, Alessia Suprano, Emanuele Polino, Francesca Acanfora, Luca Innocenti, Alessandro Ferraro, Mauro Paternostro, Nicoló Spagnolo, and Fabio Sciarrino, Machine learning-based classification of vector vortex beams, Phys. Rev. Lett. 124, 160401, (2020), arXiv:2005.07949.

Content

  • notebooks. Jupyer notebooks containing code and explanations to reproduce the results of the paper.
  • src. The notebooks use a number of supporting functions, which are all defined here.
  • data. Contains the datasets used in the notebooks.
  • saved_CNN_models. Pre-trained CNNs used in the notebooks.

Requirements

The code uses Python 3. The necessary packages can be installed with either conda or pip. To install all the required packages in one go, we include environment.yml and requirements.txt files.

If you use conda, you can create a new environment and replicate the one used to run these notebooks running the following command in a terminal (from the directory containing environment.yml):

conda env create -f environment.yml

Alternatively, using pip, run the following:

pip install -r requirements.txt

Note that some of the notebooks assume the same directory structure of the repo is mantained. Running notebooks saved in different locations will require to manually make sure that the code in ./src is available to be imported in the notebook.