GithubHelp home page GithubHelp logo

benchmark_in_de's Introduction

Benchmarking Deep Learning-based Models on Nanophotonic Inverse Design Problems

This repository is the implementation of paper Benchmarking deep learning-based models on nanophotonic inverse design problems.

Introduction

1. Two inverse design tasks:

Geometry illustration

(a) Template structure: Silicon Nanorods for structural color inverse design.

This structure can be described by 4 parameters: Period (P), Diameter (D), Gap (G), and Height (H).

The optical response is reflection structural color.

(b) Freeform structure: Transmission spectrum inverse design based on the Si free-from structures.

This structure is described by a pixlated image.

The optical response is the transmission.

2. Three examined deep learning models

Model illustrations

(c) Variational Auto-Encoders (VAE)

(d) Generative Adversarial Networks (GAN)

3. Three evaluation metrics

Metrics summary

Usage

1. Load the dataset and necessary files

(1) Task 1:

The dataset is already included in the folder './tasks1_template'.

(2) Task 2:

Please download the dataset, the trained models, the predicted structures (for diversity metrics) from the google drive folder, and put it under the folder './tasks2_free_form'.

2. Simulation

All datasets are simulated using the RCWA reticolo packages in MATLAB. You can find its introduction and technical file here. We provide examples of simulating the template and free-form structures in the folder './RCWA'.

(a) How to simulate the free-form structures?

We treat the free-from structure as a 64*64 pixlated image. The Reticolo packages allow the definition of inclusions, including rectangles and ellipses. Therefore, an image can be treated as containing 64*64=4096 rectangle inclusions, where each rectangle inclusion only corresponding to one pixel. We give a code example here. Detailed can be found in the simulation files.

function texture = shape_from_img(img,n_air,n_medium,pixel_unit)
    % MATLAB function
    % Define the texture of arbitrary structures from an image 
    [a, b, width, height] = size(img);
    texture{1} = n_air;
    pixel = [];
    width_shift = width / 2;
    height_shift = height / 2;
    for i = - width_shift + 1:1:width_shift
        for j = -height_shift + 1:1:height_shift
            x = i + width_shift;
            y = j + height_shift;
            if img(1, 1, x,y) <=0.5
            # the binarization threshold
                pixel = [pixel_unit*(i-0.5),pixel_unit*(j-0.5),pixel_unit,pixel_unit,n_air,1];
            else
                pixel = [pixel_unit*(i-0.5),pixel_unit*(j-0.5),pixel_unit,pixel_unit,n_medium,1]; 
            end
            texture = [texture,pixel];
        end
    end   
end

The way to generate free-from structures is similar to this. We also give the code to generate images in file './tasks2_free_form/image_process.py'.

Cite

If you reference or cite this work in your research, please cite:

Ma TG, Tobah M, Wang HZ, Guo LJ. Benchmarking deep learning-based models on nanophotonic inverse design problems. Opto-Electron Sci 1, 210012 (2022). doi: 10.29026/oes.2022.210012

@article{ma2022benchmarking,
  title={Benchmarking deep learning-based models on nanophotonic inverse design problems},
  author={Ma, Taigao and Tobah, Mustafa and Wang, Haozhu and Guo, L Jay},
  journal={Opto-Electronic Science},
  volume={1},
  number={1},
  pages={210012--1},
  year={2022},
  publisher={Opto-Electronic Science}
}

benchmark_in_de's People

Contributors

taigaoma1997 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.