ML keras
Integrating Keras capabilities to OPM. Draft pull request to test/discuss implications of the changes in OPM. This enables the straightforward and adaptable integration of neural networks into OPM scripts. These models are initially trained using the Keras library in Python, stored in a format readable for the OPM framework and subsequently deployed within OPM. When the user initializes and loads a stored Keras model inside an OPM script, an automated deployment process handles all the translation. This process works by operating a series of steps handling model interpretation, layer conversion, optimization, and code generation steps to adapt the Keras model to a native OPM function.
jenkins build this please
jenkins build this please
This does not add a dependency on a third party library, so then I assume it instead embeds Keras in some way? Or have I misunderstood the purpose of this PR?
Is there a reason this is added to opm-common instead of being a separate repository? Do we, somehow, need to make (selected) objects in this repository, or any of its downstream repositories for that matter, "aware" of Keras?
This does not add a dependency on a third party library, so then I assume it instead embeds Keras in some way? Or have I misunderstood the purpose of this PR?
We use Keras for the training process (it doesnt need to be done in OPM). The generated models are subsequently embedded and run in OPM. I have updated the description to provide some context.
jenkins build this please
jenkins build this please
Maybe I'm missing something, but as far as I can tell no-one have answered my question from last week
Is there a reason this is added to opm-common instead of being a separate repository? Do we, somehow, need to make (selected) objects in this repository, or any of its downstream repositories for that matter, "aware" of Keras?
I would really like an answer to this before I consider the details of the PR.
I would really like an answer to this before I consider the details of the PR.
Sorry for not answering earlier. The idea is to apply the ML-Keras inside OPM for different tasks. This is only the first PR to add the Keras ML model. The applications will follow. For an example of a ML near well model using ML-Keras check out https://github.com/cssr-tools/ML_near_well. Since the ML-Keras model framework is general. We hope it would be useful for the OPM community and therefore suggest to add it to opm-common
The idea is to apply the ML-Keras inside OPM for different tasks [...] Since the ML-Keras model framework is general, we hope it would be useful for the OPM community and therefore suggest to add it to opm-common
Okay, utility/convenience is clearly one reason for adding it here. Would it be impossible to make [your/certain use cases] work if it were located elsewhere? Do you, for instance, need access to the internals/private data members or member functions of Well or Connection objects or similar in your use cases?
jenkins build this please
The idea is to apply the ML-Keras inside OPM for different tasks [...] Since the ML-Keras model framework is general, we hope it would be useful for the OPM community and therefore suggest to add it to opm-common
Okay, utility/convenience is clearly one reason for adding it here. Would it be impossible to make [your/certain use cases] work if it were located elsewhere? Do you, for instance, need access to the internals/private data members or member functions of
WellorConnectionobjects or similar in your use cases?
Exact! For instance, we need access to the automatic differentiation tools within OPM.
jenkins build this please
Thanks all for the valuables comments and suggestions. We have started adding most of the modifications.
jenkins build this please
jenkins build this please
Note that in addition to re-commenting on several of the unchanged problems, I un-resolved several more since the existing comment was still valid. Please make code changes first, in a separate commit so I can easily see what changes you made, then after that add a separate commit to do the auto-reformatting.
Note that in addition to re-commenting on several of the unchanged problems, I un-resolved several more since the existing comment was still valid. Please make code changes first, in a separate commit so I can easily see what changes you made, then after that add a separate commit to do the auto-reformatting.
Thanks for spotting the missing points. The changes were done in November. However, unfortunately, during re-basing we removed some commits inadvertently. The requested changes will all be added back.
jenkins build this please
jenkins build this please
jenkins build this please
jenkins build this please
jenkins build this please
Finally, all is green and ok! Merging.