Giter Club home page Giter Club logo

nextorch's Introduction

NEXTorch

image

NEXTorch is an open-source software package in Python/PyTorch to faciliate experimental design using Bayesian Optimization (BO).

NEXTorch stands for Next EXperiment toolkit in PyTorch/BoTorch. It is also a library for learning the theory and implementation of Bayesian Optimization.

image

Documentation

See our documentation page for examples, equations used, and docstrings.

Developers

Dependencies

  • Python >= 3.7
  • PyTorch >= 1.8: Used for tensor operations with GPU and autograd support
  • GPyTorch >= 1.4: Used for training Gaussian Processes
  • BoTorch = 0.4.0: Used for providing Bayesian Optimization framework
  • Matplotlib: Used for generating plots
  • PyDOE2: Used for constructing experimental designs
  • Numpy: Used for vector and matrix operations
  • Scipy: Used for curve fitting
  • Pandas: Used to import data from Excel or CSV files
  • openpyxl: Used by Pandas to import Excel files
  • pytest: Used for unit tests

Getting Started

  1. Install using pip (see documentation for full instructions):

    pip install nextorch
  2. Run the unit tests.
  3. Read the documentation for tutorials and examples.

License

This project is licensed under the MIT License - see the LICENSE.md. file for details.

Contributing

If you have a suggestion or find a bug, please post to our Issues page on GitHub.

Questions

If you are having issues, please post to our Issues page on GitHub.

Funding

This material is based upon work supported by the Department of Energy's Office of Energy Efficient and Renewable Energy's Advanced Manufacturing Office under Award Number DE-EE0007888-9.5.

Acknowledgements

  • Jaynell Keely (Logo design)

Publications

Y. Wang, T.-Y. Chen, and D.G. Vlachos, NEXTorch: A Design and Bayesian Optimization Toolkit for Chemical Sciences and Engineering, J. Chem. Inf. Model. 2021, 61, 11, 5312โ€“5319.

nextorch's People

Contributors

tychen1217 avatar wangyifan411 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

nextorch's Issues

I cannot import PFR_yield

Once I want to run your example in the supporting information of your paper, I cannot import PFR_yield. I also cannot install this package.

Time to upgrade to keep up with Ax

I tried to create a conda environment where Ax and nextorch could play together, but I am not so lucky.
I installed ax-platform first.

nextorch 0.4.0 requires botorch<=0.4.0, but you have botorch 0.9.5 which is incompatible.
nextorch 0.4.0 requires gpytorch<=1.4, but you have gpytorch 1.11 which is incompatible.

Please update nextorch to make that possible.

Heatmap and surface plots no longer working

Thank you for a great tool and this is probably something that is non-urgent as the core code still seems to work.

When trying to produce heat map and surface plots using the template I end up with a uniform value across all values:
template_heatmap

template_surface

I initially thought that there was a problem with my code, but when running one of your notebooks (10_PFR_mixed_type_inputs.ipynb) I see the exact same behaviour:
10_PFR_heatmap

10_PFR_surface

My assumption is that this is probably just a dependency issue. The optimal values still seem to be correct and so it doesn't seem to be a problem that affects the underlying data processing.

Does NEXTorch support inequality constraints?

Nice work on NEXTorch! Seems like a compelling idea, and some difficulty with implementing human-in-the-loop optimization via Ax is what led me here.

Something very important for my use-case is inequality constraints for composition-based Bayesian optimization (also prevalence-based, fractional-based, etc., i.e. everything needs to sum to 1). For example:

A + B + C <= 1

where A, B, and C are parameters to be optimized.

For me, there would technically also be D, the final parameter is determined automatically outside of the optimization loop via:

D = 1 - sum([A, B, C])

In other words, safe to ignore D, but relevant for the context of a composition-based optimization.

Is it possible to specify an inequality constraint within the current implementation of NEXTorch?

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.