Neural network module

From Spinach Documentation Wiki
Revision as of 16:23, 14 June 2021 by Kuprov (talk | contribs) (→‎Using DEERNet)
Jump to: navigation, search

DEERNet is a collection of functions that make and use deep neural networks for processing DEER data. The approach is described in detail in (https://dx.doi.org/10.1126/sciadv.aat5218). The reasons why it works so well are analysed in (https://arxiv.org/abs/1912.01498).

Using DEERNet

Simply feed your DEER data to deernet.m - examples are provided in examples/deernet directory. You will get outputs that looks like the following:

Deernet2 example.png

Functions

deer_lib_gen.m
Generates a library of simulated DEER data for use in neural network training and validation.
deernet.m
Uses a curated ensemble of neural networks to extract the distance distribution from DEER data.
deernet_wrapper.m
Compilable DEERNet wrapper for use outside Matlab and Spinach.
descramble.m
Weight matrix descrambling using Tikhonov smoothness criterion.
dist_range.m
Distance range estimation for a given time grid.
elexsys2deernet.m
Prepares standard Bruker Elexsys datasets for input into the deernet.m function.
left_diag.m
Weight matrix descrambling using maximum diagonality criterion.
process_using.m
Runs DEER data processing using a specified neural network file.
train_one_net.m
Trains a single neural network using supplied parameters.

Service functions

quality_control.m
Internal heuristics designed to catch malformed inputs.

Training your own networks

Training your own networks will require powerful hardware - IK's workstation has 32 Xeon cores, 1 TB of RAM, and three NVidia Titan V cards. Network sets included with the public versions of DEERNet took weeks to train.

  1. Go into experiments/deernet and edit library_params.m file.
  2. Delete all *.mat files from network directories.
  3. Edit training_script.m file to match your hardware configuration.
  4. Launch training_script.m file and hope that your computer holds up.


Version 2.5, authors: Ilya Kuprov, Steve Worswick, Jake Amey, Jake Keeley, Tajwar Choudhury