https://bitbucket.org/rshegde/deepmie-deep-learning-electromagnetic-scattering
Abstract
===============================================================
We propose the use of Deep Convolutional Neural Networks (DCNN)
in concert with Differential Evolution for solving inverse problems in
electromagnetics. We show that networks built using innovations like
convolutional layers, batch normalization, parametric REctified Linear Unit
(ReLU) and residual blocks achieve comparable performance to previously
reported dense fully-connected networks but achieve drastic reduction in
parameter weights and training epoch lengths. The proposed lightweight CNNs
are used in concert with Differential Evolution global optimization to achieve
8x speedup in convergence time. Systematic hyperparameter grid searches are
reported to permit faster model discovery for application to other problems.
See the following arxiv paper for details
Requirements
================================================================
1) CUDA capable GPU
2) Python 3.5
3) Numpy, Matplotlib, Pandas, Scipy, Scikitlearn
4) Cudatooklit 9.0, CuDNN 7.1
5) Mxnet-GPU, Mxnet-cumkl
6) Keras, Keras-mxnet
7) Scattnlay -- needed if you want to generate other datasets
8) Jupyter notebook
9) ipyparallel for calling multiple runs at the same time
Getting started
==================================
Most of the code is placed in Jupyter notebooks for interactivity.
PyMIEtest.ipynb -- familiarizes you with generating datasets
Scatternets.ipynb -- allows building and visualizing models
hypoptim.ipynb -- hyperparameter grid search using scikit CV grid search
scipydiffe -- differential evolution using compiled models.