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.