This repository contains a collection of PyTorch models trained on the National Laboratory of the Rockies (NLR) hydrogen electrolysis dataset located at [https://data.nrel.gov/submissions/305] and [https://data.nrel.gov/submissions/306]. All models are trained using NLR’s PyTorch Machine Learning Toolbox (PT-MELT), a collection of artificial intelligence and machine-learning models and workflows specifically designed for uncertainty-quantified, scientific machine-learning tasks. Full documentation on PT-MELT is available at nrel.github.io/pt-melt.
Each of these models is compatible with NLR’s (formerly NREL) PT-MELT Version 0.1.4 and can be obtained via GitHub at github.com/NREL/pt-melt. The models are accompanied by corresponding metadata used to re-create the models. Example scripts for loading, training, and evaluating the models are located on the PT-MELT GitHub.
Model details vary based on model construction and can be found in the accompanying metadata file for each of the models. The number of inputs and input types are different for each model, but the output is always the same: IVAL_f_FM011_Flow, the production of hydrogen (H2). Along with a prediction of the hydrogen production is a corresponding estimate of the standard deviation of the prediction, which acts as a measure of the uncertainty. The form of the underlying probability distribution is controlled by the num_mixtures hyperparameter. Higher values will lead to a weighted Gaussian mixture probability curve. Uncertainty quantification can also be disabled by setting num_mixtures = 0. Convenience functions to evaluate the models are provided directly by PT-MELT’s Evaluation module (e.g., make_predictions() function).
These models are set up to take a variable-length input sequence and output the next time step in that sequence (i.e., many-to-one sampling). Contained with each model is the full metadata needed to reproduce the model using the PT-MELT version indicated in the metadata. An example metadata format and content for the h2e_lstm_model_60s_attn_15inputs.safetensors model is reproduced here:
{'act_fun': 'relu',
'batch_norm': 'False',
'batch_norm_type': 'ema',
'criterion': 'mse',
'depth': '1',
'dropout': '0.0',
'head_type': 'attn',
'input_dropout': '0.0',
'input_features': "['H2E_f_NREL_CurrentCmd', 'H2E_f_PT264_Pressure', "
"'H2E_f_PT307_Pressure', 'H2E_f_PT312_Pressure', "
"'H2E_f_PT604_Pressure', 'H2E_f_RS209_Resistivity', "
"'H2E_f_RS507_Resistivity', 'H2E_f_TE218_Temp', "
"'H2E_f_TE219_Temp', 'H2E_f_TE338_Temp', "
"'H2E_f_TE601_Temp', 'H2E_f_TT645_Temp', "
"'H2E_f_TT646_Temp', 'H2E_f_TT647_Temp', "
"'H2E_f_TT648_Temp']",
'l1_reg': '0.0',
'l2_reg': '0.001',
'model_name': 'h2e_lstm_model_60s_attn_15inputs',
'model_type': 'RecurrentNeuralNetwork',
'n_features': '15',
'n_targets': '1',
'num_mixtures': '1',
'optimizer': 'Adam',
'output_activation': 'linear',
'output_features': "['IVAL_f_FM011_Flow']",
'ptmelt_version': '0.1.4',
'rnn_type': 'lstm',
'scheduler': 'ReduceLROnPlateau',
'seq_length': '60',
'width': '64'}
Inputs: 15-input model using
- 'H2E_f_NREL_CurrentCmd',
- 'H2E_f_PT264_Pressure',
- 'H2E_f_PT307_Pressure',
- 'H2E_f_PT312_Pressure',
- 'H2E_f_PT604_Pressure',
- 'H2E_f_RS209_Resistivity',
- 'H2E_f_RS507_Resistivity',
- 'H2E_f_TE218_Temp',
- 'H2E_f_TE219_Temp',
- 'H2E_f_TE338_Temp',
- 'H2E_f_TE601_Temp',
- 'H2E_f_TT645_Temp',
- 'H2E_f_TT646_Temp',
- 'H2E_f_TT647_Temp',
- 'H2E_f_TT648_Temp'
Output: ‘IVAL_f_FM011_Flow’
- Mean and standard deviation at each point.
Model Architecture:
- PT-MELT implementation of RecurrentNeuralNetwork class using different recurrent neural network subtypes (long short-term memory, gated recurrent unit, or classic recurrent neural network).
- Here we are using a long short-term memory subclass with attention head.
Results:
- We have included outputs from time-series tests for every experiment in the hydrogen electrolysis database and a simple parity plot showing root mean square error performance.
- Lower root mean square error is likely achievable with additional tuning of model hyperparameters.
- As newer models are available, they will be uploaded here.
Any questions about the models or PT-MELT can be directed to Nicholas.Wimer@nrel.gov.