/GLOnet

Global optimization based on generative neural networks

Primary LanguagePythonMIT LicenseMIT

Global optimization based on generative nerual networks (GLOnet)

Requirements

We recommend using python3 and a virtual environment

virtualenv -p python3 .env
source .env/bin/activate
pip install -r requirements.txt

When you're done working on the project, deactivate the virtual environment with deactivate.

A matlab engine for python is needed for EM simulation. Please refer to MathWorks Pages for installation.

Path of RETICOLO should be added in the main.py

Training the GLOnet

You can change the parameters by editing Params.json in results folder.

If you want to train the network, simply run

python main.py 

or

python main.py --output_dir results --wavelength 900 --angle 60

to specify non-default output folder or parameters

Results

All results will store in output_dir/ folder.

-figures/  (figures of generated devices and loss function curve)

-model/    (all weights of the generator)

-outputs/  (500 generated devices in `.mat` format)

-history.mat

-train.log

Citation

If you use this code for your research, please cite:

Simulator-based training of generative models for the inverse design of metasurfaces.
Jiaqi Jiang, Jonathan A. Fan

Global Optimization of Dielectric Metasurfaces Using a Physics-Driven Neural Network.
Jiaqi Jiang, Jonathan A. Fan