GithubHelp home page GithubHelp logo

deng-mit / crnn Goto Github PK

View Code? Open in Web Editor NEW
63.0 7.0 15.0 2.87 MB

Chemical Reaction Neural Network

Home Page: https://arxiv.org/abs/2002.09062

License: MIT License

Julia 97.94% Python 2.06%
neural-ode sciml chemical-kinetics

crnn's Introduction

CRNN (Chemical Reaction Neural Network)

CRNN is an interpretable neural network architecture for autonomously inference chemical reaction pathways in various chemical systems. It is designed based on the following two fundamental physics laws: the Law of Mass Action and Arrhenius Law. It is also possible to incorporate other physics laws to adapt CRNN to a specific domain.

You can find the common questions regarding CRNN in the FAQs.

Structure of this repo

This repo provides the case studies presented in the original CRNN paper as well as ongoing preliminary results on other systems. Currently, we are actively working on the following systems:

Inside each folder, such as case 1/2/3, you will find at least two Julia codes. One for training and the other one for weight pruning. Those two files are identical, except that the weight pruning includes a function to prune the CRNN weights to further encourage sparsity.

Get Started

Have a look at the code for case 2. The script consists of the following parts:

  • Hyper-parameter settings
  • Generate synthesized data
  • Define the neural ODE problem
  • Train CRNN using ADAM

We strongly recommend using Julia 1.6 with the CRNN code included in this repository. Newer versions may lead to indexing issues and convergence to incorrect mechanisms.

Cite

Ji, Weiqi, and Deng, Sili. "Autonomous Discovery of Unknown Reaction Pathways from Data by Chemical Reaction Neural Network." The Journal of Physical Chemistry A, (2021), 125, 4, 1082–1092, acs/arXiv

crnn's People

Contributors

b-koenig avatar jiweiqi avatar yewalenikhil65 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

crnn's Issues

Guidelines for bounds on clamping weights , scaling derivatives and slope

Opening issue for bit detailed documentation on

  • slope,
  • scaling dydt,
  • bounds on clamping weights, scaling weights
  • scaling loss by the standard deviation
  • sensealg for different cases (stiff and non-stiff)
  • when to bother about g_norm or gradient in the training process(like we don't bother much in simple case 1)
  • tanh vs gelu ? Comments on different activations in different cases

Query in robertsons code in predict_neuralode function

Hi @jiweiqi ,In robertson's code.. shouldn't one solve for _prob and not prob .. copying here code for the reference from
https://github.com/DENG-MIT/CRNN/blob/main/robertson/rober_crnn.jl

function predict_neuralode(u0, p; sample = datasize)
    global w_in, w_b, w_out = p2vec(p)
    _prob = remake(prob, tspan=[0, tsteps[sample]])                               # this line
    sol = solve(prob, alg, u0=u0, p=p, saveat=tsteps[1:sample],             # this line
                sensalg=sense, verbose=false, maxiters=maxiters)

``

Ideas on training CRNN from experimental data

It would be nice to study a case with experimental data. The chemical kinetic model can be very simple, although. It would be useful when you show something to others.

Maybe Ritaank and Matthew can help with it. I will also make up some candidates on this issue.

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.