Jupyter Notebooks
===================
OMLT provides Jupyter notebooks to demonstrate its core capabilities. All notebooks can be found on the OMLT
github `page `_.
The first set of notebooks demonstrates the basic mechanics of OMLT and shows how to use it:
* `build_network.ipynb `_ shows how to manually create a `NetworkDefinition` object. This notebook is helpful for understanding the details of the internal layer structure that OMLT uses to represent neural networks.
* `import_network.ipynb `_ shows how to import neural networks from Keras and PyTorch using ONNX interoperability. The notebook also shows how to import variable bounds from data.
* `neural_network_formulations.ipynb `_ showcases the different neural network formulations available in OMLT.
* `index_handling.ipynb `_ shows how to use `IndexMapper` to handle the mappings between indexes.
* `bo_with_trees.ipynb `_ incorporates gradient-boosted trees into a Bayesian optimization loop to optimize the Rosenbrock function.
* `linear_tree_formulations.ipynb `_ showcases the different linear model decision tree formulations available in OMLT.
The second set of notebooks gives application-specific examples:
* `mnist_example_dense.ipynb `_ trains a fully dense neural network on MNIST and uses OMLT to find adversarial examples.
* `mnist_example_convolutional.ipynb `_ trains a convolutional neural network on MNIST and uses OMLT to find adversarial examples.
* `graph_neural_network_formulation.ipynb `_ transforms graph neural networks into OMLT and builds formulation to solve optimization problems.
* `auto-thermal-reformer.ipynb `_ develops a neural network surrogate (using sigmoid activations) with data from a process model built using `IDAES-PSE `_.
* `auto-thermal-reformer-relu.ipynb `_ develops a neural network surrogate (using ReLU activations) with data from a process model built using `IDAES-PSE `_.
*