An open API service indexing awesome lists of open source software.

https://github.com/plasmacontrol/bes-ml

BES ML data tools and models
https://github.com/plasmacontrol/bes-ml

Last synced: about 1 year ago
JSON representation

BES ML data tools and models

Awesome Lists containing this project

README

          

# BES ML

**ML models for DIII-D BES data**

To use this repo, clone it and add the repo directory to `$PYTHONPATH`. To contribute to this repo, branch off of `main`, push the feature branch to Github, and submit PRs. Prior to submitting PRs, pull and merge any updates from `main` and run pytest.

`bes_ml/` contains modules and classes to create, train, and analyze BES ML models. `bes_ml.base` contains the base classes, and other modules under `bes_ml` contain specific applications that import `bes_ml.base`. Each application directory should contain `train.py` and `analyze.py` modules. Example usage:

```python
from elm_regression import Trainer, Analyzer

model = Trainer()
model.train()

model_analyzer = Analyzer()
model_analyzer.plot_training()
model_analyzer.run_inference()
model_analyzer.plot_inference()
model_analyzer.show()
```

The primary code objects are:

- Base class `_Trainer` in `bes_ml.base.train_base` and application-specific subclasses like `ELM_Classification_Trainer` in `bes_ml.elm_classification.train`.
- Similarly, base class `_Analyzer` in `bes_ml.base.analyze_base` and applicaiton-specific subclasses like `ELM_Regression_Analyzer` in `bes_ml.elm_classification.analyze`
- Model class `Multi_Features_Model` in `bes_ml.base.models`. `Multi_Features_Model` is composed of different types of features such as CNN features, dense features, FFT features, etc. All feature are a subclass of `_Base_Features` in `bes_ml.base.models`.

`bes_data/` contains small sample datasets (~10 MB HDF5 files) to assist with code development and tools to package BES data on the GA cluster. `test/` contains pytest tests.

Additional examples can be inferred from the test scripts and from `if __name__ == ...` blocks in modules.