From 0eb5e3d853576a5360a81574d8cdb7a170453a2f Mon Sep 17 00:00:00 2001 From: fractalmanifold Date: Tue, 13 Aug 2024 18:44:43 +0200 Subject: [PATCH] adding MITLicensing --- opm/ml/LICENSE.MIT | 19 ++++++++++ opm/ml/keras_model.cpp | 22 +---------- opm/ml/keras_model.hpp | 5 +-- opm/ml/keras_model_test.cpp | 5 +-- opm/ml/ml_tools/generateunittests.py | 35 +++--------------- opm/ml/ml_tools/include/test_dense_10x1.h | 14 +++---- opm/ml/ml_tools/include/test_dense_10x10.h | 14 +++---- opm/ml/ml_tools/include/test_dense_10x10x10.h | 16 ++++---- opm/ml/ml_tools/include/test_dense_1x1.h | 8 ++-- opm/ml/ml_tools/include/test_dense_2x2.h | 12 +++--- opm/ml/ml_tools/include/test_dense_relu_10.h | 16 ++++---- opm/ml/ml_tools/include/test_dense_tanh_10.h | 16 ++++---- opm/ml/ml_tools/include/test_relu_10.h | 16 ++++---- .../ml_tools/include/test_scalingdense_1x1.h | 16 ++++---- opm/ml/ml_tools/kerasify.py | 10 ++++- opm/ml/ml_tools/models/test_dense_10x1.model | Bin 68 -> 68 bytes opm/ml/ml_tools/models/test_dense_10x10.model | Bin 528 -> 528 bytes .../ml_tools/models/test_dense_10x10x10.model | Bin 924 -> 924 bytes opm/ml/ml_tools/models/test_dense_1x1.model | Bin 32 -> 32 bytes opm/ml/ml_tools/models/test_dense_2x2.model | Bin 80 -> 80 bytes .../ml_tools/models/test_dense_relu_10.model | Bin 1384 -> 1384 bytes .../ml_tools/models/test_dense_tanh_10.model | Bin 1384 -> 1384 bytes opm/ml/ml_tools/models/test_relu_10.model | Bin 472 -> 472 bytes .../models/test_scalingdense_1x1.model | Bin 1884 -> 1884 bytes opm/ml/ml_tools/scaler_layers.py | 5 +-- opm/ml/ml_tools/scalertest.py | 5 +-- 26 files changed, 107 insertions(+), 127 deletions(-) create mode 100644 opm/ml/LICENSE.MIT diff --git a/opm/ml/LICENSE.MIT b/opm/ml/LICENSE.MIT new file mode 100644 index 00000000000..6908c245ebf --- /dev/null +++ b/opm/ml/LICENSE.MIT @@ -0,0 +1,19 @@ +Copyright (c) 2016 Robert W. Rose, 2018 Paul Maevskikh, 2024 NORCE + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/opm/ml/keras_model.cpp b/opm/ml/keras_model.cpp index 46a191c9e22..0aaf3a832ee 100644 --- a/opm/ml/keras_model.cpp +++ b/opm/ml/keras_model.cpp @@ -3,12 +3,11 @@ * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify @@ -37,8 +36,6 @@ namespace Opm { -#pragma once - bool ReadUnsignedInt(std::ifstream* file, unsigned int* i) { KASSERT(file, "Invalid file stream"); @@ -173,8 +170,6 @@ bool KerasLayerScaling::LoadLayer(std::ifstream* file) { KASSERT(ReadFloat(file, &data_max), "Failed to read max"); KASSERT(ReadFloat(file, &feat_inf), "Failed to read max"); KASSERT(ReadFloat(file, &feat_sup), "Failed to read max"); - - // KASSERT(ReadFloat(file, &feat), "Failed to read max"); return true; } @@ -188,8 +183,6 @@ bool KerasLayerScaling::Apply(Tensor* in, Tensordata_.size(); i++) { - // std::cout<<"out->data_[i]"<data_[i]<data_[i] - data_min)/(data_max - data_min); out->data_[i] = tempscale * (feat_sup - feat_inf) + feat_inf; } @@ -214,13 +207,9 @@ bool KerasLayerUnScaling::Apply(Tensor* in, TensorFlatten(); for (size_t i = 0; i < out->data_.size(); i++) { - // std::cout<<"out->data_[i]"<data_[i]<data_[i] - feat_inf)/(feat_sup - feat_inf); out->data_[i] = tempscale * (data_max - data_min) + data_min; @@ -267,13 +256,6 @@ bool KerasLayerDense::Apply(Tensor* in, Tensordims_.size() <= 2, "Invalid input dimensions"); - - // if (in->dims_.size() == 1) { - // KASSERT(in->dims_[0] == weights_.dims_[0], "Dimension mismatch %d %d", - // in->dims_[0], weights_.dims_[0]); - // } - - if (in->dims_.size() == 2) { KASSERT(in->dims_[1] == weights_.dims_[0], "Dimension mismatch %d %d", in->dims_[1], weights_.dims_[0]); diff --git a/opm/ml/keras_model.hpp b/opm/ml/keras_model.hpp index f84ea106bbf..40a77ce81f3 100644 --- a/opm/ml/keras_model.hpp +++ b/opm/ml/keras_model.hpp @@ -3,12 +3,11 @@ * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify diff --git a/opm/ml/keras_model_test.cpp b/opm/ml/keras_model_test.cpp index 354e744e950..cb597208fbb 100644 --- a/opm/ml/keras_model_test.cpp +++ b/opm/ml/keras_model_test.cpp @@ -3,12 +3,11 @@ * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify diff --git a/opm/ml/ml_tools/generateunittests.py b/opm/ml/ml_tools/generateunittests.py index fa36a0681b5..1f4ed36dc03 100644 --- a/opm/ml/ml_tools/generateunittests.py +++ b/opm/ml/ml_tools/generateunittests.py @@ -1,6 +1,4 @@ -# Copyright (c) 2024 Birane Kane -# Copyright (c) 2024 Tor Harald Sandve - +# Copyright (c) 2024 NORCE # This file is part of the Open Porous Media project (OPM). # OPM is free software: you can redistribute it and/or modify @@ -47,12 +45,11 @@ def to_cpp(ndarray): * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + * Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify @@ -142,12 +139,13 @@ def output_testcase(model, test_x, test_y, name, eps): print(model.summary()) export_model(model, 'models/test_%s.model' % name) - path = os.path.abspath(f'models/test_{name}.model') + path = os.path.abspath(f'../../opm-common/opm/ml/ml_tools/models/test_{name}.model') + relative_path = os.path.relpath(path) with open('include/test_%s.h' % name, 'w') as f: x_shape, x_data = c_array(test_x[0]) y_shape, y_data = c_array(predict_y[0]) - f.write(TEST_CASE % (name, name, x_shape, x_data, y_shape, y_data, path, eps)) + f.write(TEST_CASE % (name, name, x_shape, x_data, y_shape, y_data, relative_path, eps)) @@ -159,36 +157,15 @@ def output_testcase(model, test_x, test_y, name, eps): data_min = 10.0 model = Sequential() model.add(keras.layers.Input([10])) -# model.add(Dense(1, input_dim=10)) model.add(MinMaxScalerLayer(feature_range=(0.0, 1.0))) -# model.add(Dense(1,activation='tanh')) model.add(Dense(10,activation='tanh')) model.add(Dense(10,activation='tanh')) model.add(Dense(10,activation='tanh')) model.add(Dense(10,activation='tanh')) -# model.add(Flatten()) model.add(MinMaxUnScalerLayer(feature_range=(-3.7, -1.0))) # # model.get_layer(model.layers[0].name).adapt(data=data) model.get_layer(model.layers[-1].name).adapt(data=data) - -# model.add(Dense(1, input_dim=1)) - -# model: keras.Model = keras.Sequential( -# -# [ -# -# keras.layers.Input([1]), -# -# MinMaxScalerLayer(feature_range=(0.0, 1.0)), -# -# # keras.layers.Dense(1, input_dim=1), -# -# # MinMaxUnScalerLayer(feature_range=(0.0, 1.0)), -# -# ] -# -# ) output_testcase(model, test_x, test_y, 'scalingdense_1x1', '1e-3') # Dense 1x1 diff --git a/opm/ml/ml_tools/include/test_dense_10x1.h b/opm/ml/ml_tools/include/test_dense_10x1.h index 7306e3f47c8..9d75acaee2b 100644 --- a/opm/ml/ml_tools/include/test_dense_10x1.h +++ b/opm/ml/ml_tools/include/test_dense_10x1.h @@ -4,12 +4,11 @@ * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + * Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify @@ -25,6 +24,7 @@ You should have received a copy of the GNU General Public License along with OPM. If not, see . */ + #include #include namespace fs = std::filesystem; @@ -39,17 +39,17 @@ bool test_dense_10x1(Evaluation* load_time, Evaluation* apply_time) KASSERT(apply_time, "Invalid Evaluation"); Opm::Tensor in{10}; - in.data_ = {0.07588807,0.46424174,0.2545689,0.24965246,0.48471555,0.9185193, -0.33841145,0.30067867,0.98624486,0.85875916}; + in.data_ = {0.74998796,0.21858868,0.23070294,0.070500664,0.46532258,0.49146336, +0.3717498,0.45293888,0.6332608,0.43785256}; Opm::Tensor out{1}; - out.data_ = {-0.6094914}; + out.data_ = {0.49467176}; KerasTimer load_timer; load_timer.Start(); KerasModel model; - KASSERT(model.LoadModel("/Users/macbookn/hackatonwork/opm-common/opm/ml/ml_tools/models/test_dense_10x1.model"), "Failed to load model"); + KASSERT(model.LoadModel("../../opm-common/opm/ml/ml_tools/models/test_dense_10x1.model"), "Failed to load model"); *load_time = load_timer.Stop(); diff --git a/opm/ml/ml_tools/include/test_dense_10x10.h b/opm/ml/ml_tools/include/test_dense_10x10.h index 1f14f6f5739..6068ad9e363 100644 --- a/opm/ml/ml_tools/include/test_dense_10x10.h +++ b/opm/ml/ml_tools/include/test_dense_10x10.h @@ -4,12 +4,11 @@ * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + * Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify @@ -25,6 +24,7 @@ You should have received a copy of the GNU General Public License along with OPM. If not, see . */ + #include #include namespace fs = std::filesystem; @@ -39,17 +39,17 @@ bool test_dense_10x10(Evaluation* load_time, Evaluation* apply_time) KASSERT(apply_time, "Invalid Evaluation"); Opm::Tensor in{10}; - in.data_ = {0.74464816,0.063315846,0.2233216,0.3184675,0.017677268,0.24977225, -0.5242765,0.27742663,0.009411842,0.27946305}; + in.data_ = {0.46586692,0.9036544,0.5005982,0.5969117,0.09755054,0.60282475, +0.9040883,0.6297268,0.12081735,0.42354217}; Opm::Tensor out{1}; - out.data_ = {0.06583358}; + out.data_ = {0.04306573}; KerasTimer load_timer; load_timer.Start(); KerasModel model; - KASSERT(model.LoadModel("/Users/macbookn/hackatonwork/opm-common/opm/ml/ml_tools/models/test_dense_10x10.model"), "Failed to load model"); + KASSERT(model.LoadModel("../../opm-common/opm/ml/ml_tools/models/test_dense_10x10.model"), "Failed to load model"); *load_time = load_timer.Stop(); diff --git a/opm/ml/ml_tools/include/test_dense_10x10x10.h b/opm/ml/ml_tools/include/test_dense_10x10x10.h index d373bffc066..8bd8659d171 100644 --- a/opm/ml/ml_tools/include/test_dense_10x10x10.h +++ b/opm/ml/ml_tools/include/test_dense_10x10x10.h @@ -4,12 +4,11 @@ * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + * Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify @@ -25,6 +24,7 @@ You should have received a copy of the GNU General Public License along with OPM. If not, see . */ + #include #include namespace fs = std::filesystem; @@ -39,18 +39,18 @@ bool test_dense_10x10x10(Evaluation* load_time, Evaluation* apply_time) KASSERT(apply_time, "Invalid Evaluation"); Opm::Tensor in{10}; - in.data_ = {0.84246427,0.15756324,0.8924635,0.5069177,0.8633376,0.31142905, -0.7651278,0.5454816,0.22917923,0.54828155}; + in.data_ = {0.5250269,0.20885888,0.2868855,0.11718734,0.56410795,0.3253708, +0.63131493,0.44084042,0.6677203,0.29525173}; Opm::Tensor out{10}; - out.data_ = {0.767188,0.23175952,0.036515277,-0.2622609,-0.25455678, -0.157909,-0.6259325,-0.6256348,0.4324326,-0.4141315}; + out.data_ = {0.054961562,-0.45561615,-0.2112424,0.0062360223,0.3164827, +0.746866,-0.41519523,0.004653876,0.58843577,-0.3870317}; KerasTimer load_timer; load_timer.Start(); KerasModel model; - KASSERT(model.LoadModel("/Users/macbookn/hackatonwork/opm-common/opm/ml/ml_tools/models/test_dense_10x10x10.model"), "Failed to load model"); + KASSERT(model.LoadModel("../../opm-common/opm/ml/ml_tools/models/test_dense_10x10x10.model"), "Failed to load model"); *load_time = load_timer.Stop(); diff --git a/opm/ml/ml_tools/include/test_dense_1x1.h b/opm/ml/ml_tools/include/test_dense_1x1.h index 5410cee5d08..668dbf54f16 100644 --- a/opm/ml/ml_tools/include/test_dense_1x1.h +++ b/opm/ml/ml_tools/include/test_dense_1x1.h @@ -4,12 +4,11 @@ * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + * Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify @@ -25,6 +24,7 @@ You should have received a copy of the GNU General Public License along with OPM. If not, see . */ + #include #include namespace fs = std::filesystem; @@ -48,7 +48,7 @@ bool test_dense_1x1(Evaluation* load_time, Evaluation* apply_time) load_timer.Start(); KerasModel model; - KASSERT(model.LoadModel("/Users/macbookn/hackatonwork/opm-common/opm/ml/ml_tools/models/test_dense_1x1.model"), "Failed to load model"); + KASSERT(model.LoadModel("../../opm-common/opm/ml/ml_tools/models/test_dense_1x1.model"), "Failed to load model"); *load_time = load_timer.Stop(); diff --git a/opm/ml/ml_tools/include/test_dense_2x2.h b/opm/ml/ml_tools/include/test_dense_2x2.h index 1bbfe040217..10ea423b013 100644 --- a/opm/ml/ml_tools/include/test_dense_2x2.h +++ b/opm/ml/ml_tools/include/test_dense_2x2.h @@ -4,12 +4,11 @@ * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + * Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify @@ -25,6 +24,7 @@ You should have received a copy of the GNU General Public License along with OPM. If not, see . */ + #include #include namespace fs = std::filesystem; @@ -39,16 +39,16 @@ bool test_dense_2x2(Evaluation* load_time, Evaluation* apply_time) KASSERT(apply_time, "Invalid Evaluation"); Opm::Tensor in{2}; - in.data_ = {0.6440019,0.62654394}; + in.data_ = {0.31118634,0.7765746}; Opm::Tensor out{1}; - out.data_ = {0.7173992}; + out.data_ = {-0.18889335}; KerasTimer load_timer; load_timer.Start(); KerasModel model; - KASSERT(model.LoadModel("/Users/macbookn/hackatonwork/opm-common/opm/ml/ml_tools/models/test_dense_2x2.model"), "Failed to load model"); + KASSERT(model.LoadModel("../../opm-common/opm/ml/ml_tools/models/test_dense_2x2.model"), "Failed to load model"); *load_time = load_timer.Stop(); diff --git a/opm/ml/ml_tools/include/test_dense_relu_10.h b/opm/ml/ml_tools/include/test_dense_relu_10.h index 2031e90b6f3..2c71b73ca58 100644 --- a/opm/ml/ml_tools/include/test_dense_relu_10.h +++ b/opm/ml/ml_tools/include/test_dense_relu_10.h @@ -4,12 +4,11 @@ * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + * Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify @@ -25,6 +24,7 @@ You should have received a copy of the GNU General Public License along with OPM. If not, see . */ + #include #include namespace fs = std::filesystem; @@ -39,18 +39,18 @@ bool test_dense_relu_10(Evaluation* load_time, Evaluation* apply_time) KASSERT(apply_time, "Invalid Evaluation"); Opm::Tensor in{10}; - in.data_ = {0.58381814,0.90178627,0.13896127,0.18618706,0.94524324,0.11974335, -0.88227147,0.09502208,0.71341133,0.53053087}; + in.data_ = {0.8129924,0.75172913,0.5933609,0.15881199,0.6235366,0.87480235, +0.7488489,0.11598817,0.17794482,0.53804207}; Opm::Tensor out{10}; - out.data_ = {0.,0.,0.,0.,0.,0.20002396, -0.19065511,0.,0.,0.1995258}; + out.data_ = {0.13795315,0.,0.074093476,0.3255115,0.64427626,0., +0.014938377,0.,0.,0.}; KerasTimer load_timer; load_timer.Start(); KerasModel model; - KASSERT(model.LoadModel("/Users/macbookn/hackatonwork/opm-common/opm/ml/ml_tools/models/test_dense_relu_10.model"), "Failed to load model"); + KASSERT(model.LoadModel("../../opm-common/opm/ml/ml_tools/models/test_dense_relu_10.model"), "Failed to load model"); *load_time = load_timer.Stop(); diff --git a/opm/ml/ml_tools/include/test_dense_tanh_10.h b/opm/ml/ml_tools/include/test_dense_tanh_10.h index 9785b41416d..8d4b47f2275 100644 --- a/opm/ml/ml_tools/include/test_dense_tanh_10.h +++ b/opm/ml/ml_tools/include/test_dense_tanh_10.h @@ -4,12 +4,11 @@ * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + * Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify @@ -25,6 +24,7 @@ You should have received a copy of the GNU General Public License along with OPM. If not, see . */ + #include #include namespace fs = std::filesystem; @@ -39,18 +39,18 @@ bool test_dense_tanh_10(Evaluation* load_time, Evaluation* apply_time) KASSERT(apply_time, "Invalid Evaluation"); Opm::Tensor in{10}; - in.data_ = {0.5133757,0.8992964,0.018602798,0.8300745,0.43004134,0.16437091, -0.13667183,0.7081913,0.39895463,0.53926337}; + in.data_ = {0.31477565,0.54144824,0.679132,0.85510814,0.96523064,0.32442212, +0.25378492,0.45629957,0.75501525,0.3410805}; Opm::Tensor out{10}; - out.data_ = {-0.16390416,-0.11630989,0.37623432,-0.65770155,0.1101914, --0.097250186,0.5037399,-0.2223558,0.3810121,0.6196858}; + out.data_ = {-0.24370436,-0.15176499,-0.48301288,-0.071210645,0.31381485, +0.20028076,-0.4273302,0.20151882,0.26926264,-0.2015895}; KerasTimer load_timer; load_timer.Start(); KerasModel model; - KASSERT(model.LoadModel("/Users/macbookn/hackatonwork/opm-common/opm/ml/ml_tools/models/test_dense_tanh_10.model"), "Failed to load model"); + KASSERT(model.LoadModel("../../opm-common/opm/ml/ml_tools/models/test_dense_tanh_10.model"), "Failed to load model"); *load_time = load_timer.Stop(); diff --git a/opm/ml/ml_tools/include/test_relu_10.h b/opm/ml/ml_tools/include/test_relu_10.h index 86d8e3c9611..f23fabb03f2 100644 --- a/opm/ml/ml_tools/include/test_relu_10.h +++ b/opm/ml/ml_tools/include/test_relu_10.h @@ -4,12 +4,11 @@ * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + * Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify @@ -25,6 +24,7 @@ You should have received a copy of the GNU General Public License along with OPM. If not, see . */ + #include #include namespace fs = std::filesystem; @@ -39,18 +39,18 @@ bool test_relu_10(Evaluation* load_time, Evaluation* apply_time) KASSERT(apply_time, "Invalid Evaluation"); Opm::Tensor in{10}; - in.data_ = {0.120741345,0.59726936,0.9251051,0.87210053,0.6669108,0.13732599, -0.3093547,0.77527475,0.3986614,0.943842}; + in.data_ = {0.52176595,0.39513543,0.9489158,0.8337155,0.21538404,0.9417168, +0.20235209,0.06845642,0.97452354,0.67260426}; Opm::Tensor out{10}; - out.data_ = {0.,0.,0.48979148,0.,1.1085179,0., -0.,0.33353794,0.7359366,0.8868316}; + out.data_ = {0.,0.38307053,0.27412605,0.,0.,0.8103977, +0.6584701,0.,0.62901723,0.}; KerasTimer load_timer; load_timer.Start(); KerasModel model; - KASSERT(model.LoadModel("/Users/macbookn/hackatonwork/opm-common/opm/ml/ml_tools/models/test_relu_10.model"), "Failed to load model"); + KASSERT(model.LoadModel("../../opm-common/opm/ml/ml_tools/models/test_relu_10.model"), "Failed to load model"); *load_time = load_timer.Stop(); diff --git a/opm/ml/ml_tools/include/test_scalingdense_1x1.h b/opm/ml/ml_tools/include/test_scalingdense_1x1.h index 3e16e372023..76996206bc4 100644 --- a/opm/ml/ml_tools/include/test_scalingdense_1x1.h +++ b/opm/ml/ml_tools/include/test_scalingdense_1x1.h @@ -4,12 +4,11 @@ * Copyright (c) 2016 Robert W. Rose * Copyright (c) 2018 Paul Maevskikh * - * MIT License, see LICENSE.OLD file. + * MIT License, see LICENSE.MIT file. */ /* - * Copyright (c) 2024 Birane Kane - * Copyright (c) 2024 Tor Harald Sandve + * Copyright (c) 2024 NORCE This file is part of the Open Porous Media project (OPM). OPM is free software: you can redistribute it and/or modify @@ -25,6 +24,7 @@ You should have received a copy of the GNU General Public License along with OPM. If not, see . */ + #include #include namespace fs = std::filesystem; @@ -39,18 +39,18 @@ bool test_scalingdense_1x1(Evaluation* load_time, Evaluation* apply_time) KASSERT(apply_time, "Invalid Evaluation"); Opm::Tensor in{10}; - in.data_ = {0.22338921,0.8132339,0.43024784,0.26458433,0.92503846,0.6615654, -0.88089544,0.34508273,0.6916904,0.57852364}; + in.data_ = {0.161407,0.72550833,0.4622064,0.80872875,0.05957263,0.8114737, +0.32151324,0.01842946,0.6790393,0.3875095}; Opm::Tensor out{10}; - out.data_ = {670.77625,672.4989,709.0858,640.06885,827.44714,736.1234,617.30554, -638.03955,629.93115,653.84595}; + out.data_ = {766.7601,773.2369,872.55963,992.1235,788.6806,626.64465,848.05, +780.4677,833.5528,857.95953}; KerasTimer load_timer; load_timer.Start(); KerasModel model; - KASSERT(model.LoadModel("/Users/macbookn/hackatonwork/opm-common/opm/ml/ml_tools/models/test_scalingdense_1x1.model"), "Failed to load model"); + KASSERT(model.LoadModel("../../opm-common/opm/ml/ml_tools/models/test_scalingdense_1x1.model"), "Failed to load model"); *load_time = load_timer.Stop(); diff --git a/opm/ml/ml_tools/kerasify.py b/opm/ml/ml_tools/kerasify.py index a91dc615941..8dde9e054bb 100644 --- a/opm/ml/ml_tools/kerasify.py +++ b/opm/ml/ml_tools/kerasify.py @@ -1,6 +1,12 @@ -# Copyright (c) 2024 Birane Kane -# Copyright (c) 2024 Tor Harald Sandve +# /* +# * Copyright (c) 2016 Robert W. Rose +# * Copyright (c) 2018 Paul Maevskikh +# * +# * MIT License, see LICENSE.MIT file. +# */ + +# Copyright (c) 2024 NORCE # This file is part of the Open Porous Media project (OPM). # OPM is free software: you can redistribute it and/or modify diff --git a/opm/ml/ml_tools/models/test_dense_10x1.model b/opm/ml/ml_tools/models/test_dense_10x1.model index 4f3e572a68dca5ba9b426fb9bad49845080f94cf..f1086a32d645e7db0e4c78ee1c3bc3761e6f5aaf 100644 GIT binary patch delta 53 zcmV-50LuSFM359P{37%|F84D(M~Y*<7^k~F;{qPNYkN_?m@%QgHv-2!u^PX<-a;5Z LW)g$C0RR91W?&V3 delta 53 zcmV-50LuSFM359P2wm4cqm*+!T39^4L^1|HMUU6M(-jQA{U!swO)qXffZ5SL9K77V LZW4n!0RR91FBcSL diff --git a/opm/ml/ml_tools/models/test_dense_10x10.model b/opm/ml/ml_tools/models/test_dense_10x10.model index 0317b1d6e80047cd79f59aa9b92d59e87b8b44ec..17472786855e0845e195ba85191f6fd3403c4a0d 100644 GIT binary patch literal 528 zcmZQ#U|?VYVlE^s%FSh8X((yObaVT@$14l>1wH?`?|F;9-RwRkyAR$o_Z2(b-p8!C zaj)l&+I_)qbZx)x+r97SWc7Vof4c00_7msC%F9WiI>FpDK0_^Em7~g(vUZx_aF{)elDdWcq&Yn|%6(9b-6~{aM#` z+jsR$_UrDhvYofEf8T@ux9x-`Fzw$Ic*ZU~NXO18ceh=I%ej4zXP>q!_u7f=`L5lSdx!V6PWigeGwY@y~|IYP}=SwK1iNCVls(t#Mn2Z_%RY_Zbqz literal 528 zcmZQ#U|?VYVlE`?v%Gbmr0(`T7Oy+()@+<=m$d%F-t`+^?@Ru}WBc%(?!M@^>-Uva z&9%E_H({UeYID0|Ki}`Yd-(6ZIdf0#+tcN2cc|p%-pM(c`!=jxu=Bftj@_H+?fVw! zT-bN0;JCbj0$Mb5gUGqGS{ZBss-4}4^mR;}e zt9yesKDUz>XS6q4e9MmEDEEH3x~u!@vi{gjzsYI;cAMqCrwcsxm0IrID-?ZcuUP(a z+u2;^c2(vRZ6`}V+xJamq8;11*EV4R$L*f=pSLZE-fVX;T6tfJYMY&c_2YeMv!~iH zB`&p_yNt#Dv@o~*-Z-m$n|tE+rU*6f$`xw1$_CO=K%4<&djaVzAPr*Y0ofoqMx?j| zu|e3aeAnI=@i*3zR8iS7G3PaDS^Hml>My=U+OvLKxN8g%6&}jJYh|w- zIz%NN8HIJcNH0(ham#H;OCRZl#`!4vL=+#Lac1)EW3AS`2w~?70;b z7w6{hN6jJEbCvcFiMdeqggjvT5=+I%6w>2rsA0X0I+v;`rQDx0J-;4@W4mar?G)HPELjKJxdQD#;=l&v26?+?fCELw= zf{TqQ!Nm!=!e$FngDi!JNKL;U5$Hh$HY zD_}^j$Dae=^BRSQFQ1BHw*B|`nl0T-I;kL4<#`Hv*v1?7oq~K^Yks4r3FGoUDmYre zr+jn;eV6wlWMw41ysLrQ%{Qp%;tWF33i}^^-0IJ&aaA{rGi}%Cu_c6NTn>b`YVjyw zl8WBusLrh)8e{>-~Jv~@h5ko9eI+?=ud3}XpI%C8Xz0?bTY%0)h2$9H{(APWu=#Tz*-22DBPj4?T zFJFP=Kgt{DslUa6%2aIdc3q$}X;cw9l*AiQYIG02f;~Pw#-V0bCUX28$ z5^qjcM-5j%25E6+5Oe8;}o0?tQFC{}Y8Z zGFt4+$J$@TDr0>cC4IaPGxa5CP&}m?@Y_V?T~n5cwt7q(29ea!&3$QG#2aR-$T^n6 z8IILi-WFYiOH;{C1ncmcc7PfCIxK0^a~KG;k$Z<2PhXE^#!Kl`l~RMRyB{LKtmovJ zBK`$;Kc}ex9k$^o+fsDD1v0_o0c0=2|s@5#nsEhYbisz zyC+Y&dsVm~TJWwQNBDgtOhHeIV56{${-WiJh8c`fF1=cP01_Dsh%_rQ#|! zQIN%s?ww`p((e+M1tDXyRGBAEMe|Y*6|b?O^{uV2q@AY?`Y4i%o@25ODHY#Wqp|26 zc$YkeySZt#xJ}HDTQB3FzQ(+Lt)6lk525ClA7KwYz#QLQ2Yc~*)q8Kh*54yi(`NTJn-3$`xIg_f(*g!@VBCoTU4XU(}e diff --git a/opm/ml/ml_tools/models/test_dense_1x1.model b/opm/ml/ml_tools/models/test_dense_1x1.model index c512d9dd927289ee946065f9c4b8ba095da799b8..c7a9439f9ecd197f1228c829aaa35aa1076f9e67 100644 GIT binary patch delta 17 YcmY#Tm>|OQdj-3FzEHCjBLf2i04w|i82|tP delta 17 YcmY#Tm>|Mq@26#-FVt+s$iTn=03fUbCIA2c diff --git a/opm/ml/ml_tools/models/test_dense_2x2.model b/opm/ml/ml_tools/models/test_dense_2x2.model index 7fe8b18bb83716023f08dc05e36ea5b03cbcbe3e..971e990ea268bd40b6e3d6b5e153c30531fd88bb 100644 GIT binary patch literal 80 zcmZQ#U|?VYVkRW~Z|X$*vkNNiyOsU-FFQZYK2NB5S1u4UBB=$jLHJXH$^NpAh5Pb_ Inyo;50GPrO9smFU literal 80 zcmZQ#U|?VYVkRV9942kQ%6Olhx{H~8TEYzb9HC~bc%kN9j7VxhY!E&n+h)I+OJg5M H4Tui_$|ns0 diff --git a/opm/ml/ml_tools/models/test_dense_relu_10.model b/opm/ml/ml_tools/models/test_dense_relu_10.model index 41aeed0b4f323232b8612797b9c12ae70e6f7532..017e094f4c6c37393f9136b5c7c5aef25ac70ffd 100644 GIT binary patch literal 1384 zcmZvbdrVUY6vnSD<*If6rmek8gwx>>hB~+lM}^3<&cyL5s4V9AT#5zQrMwrrie~>eE2rs1m6f znY2uHLD(M~M>%o1IB`uX+`Z3)c3V_XRQrqC{7{7%oBh<1>P@8LX(i}_&ysm>GpP9o zv}(e?fKt7P0Op$vvCD};MAjt;x9TEOo0)W=dpeR#jxbkoAD13Zhlei7(9+oqxQUNf zd0)c1iatbfD$LS(A@?sSsVN_#w9y=#w=f2FKi&_rfmAdMOoE4B25B8ph7;|}p})8e zRtm;I(>_nlKAeCRB0H3YzDwEis&M4USseW)6W?2Km8|gO;nFmFsQldxX0Ggo5{gA> zl+U1JXA*e)^okt3kxe@2XVCZ3J_R>rnc91BC2R1rFaCXiad4han z016#bYAkq&&C@#N!yQuuftGp6bawIOK>@>(|CePBClT6HveBP^g5u4L$6zltb=HwB z=F1CEX1c7F9<-s`xEEnlr2!kqpJURP23}{`(yd$;Ejc}#EaX1JMUgH*`1~eX)xe<@ zqwQGHbRXnid<>f#kM=t_;>BY&;>dYy+)8I*85sxFbtdese}p5dZ_((Oi}E>jRQH8G z^|E?7N;>-0$8WWOETIieiQe#JNjb!3ou;~r21GcE1|lF%73hVMU1<#-skko1MK#FuhgZpL%4u%T*7(>H&exASCVl4y$|yV9h&hdSrAP?(Vw- znWIrK>+x&kYFVh1JCl+fGQ8L7fd&IZ+$OjU#>6NrQG251@(Wn8eg=?_t>6H-&`LM+VIOmmC0X!Nw7+Wk}i$1=E{BQD(I zO%<7kP$80m?_vU##?c8T72?=8Ou+mirn*cWO?j!Sa+3+p34}d@?@#u=yg`m-8h$QuB}16yEC3&Ek~#Mm+;JZ6!JtH;MOW%(%tGc z=vO)5>V(6hb&HH>-71HdUA0&`+ysdPo3=bN@Vt@g?sJ9}4Nt(hhoD=!x=5*WB?u0v z;ET=-2xpzgRB1MK#I6_uhXI|wY6mStNLtGaVd*DnWM+0Abad6jIK$p8QV literal 1384 zcmZwEe^AqP7zgk#Z0=<9=cY9X4o-$u{+PNbX>Tzy8NOzlnQ=y%rKpM3{TE8hc+JX=r+4Bd3O zf<6#XK-^TlcqMrW)^-uCHsct$Zea=~W($J%5G19{$CnOvKoza=b#hw@^HN8MkK%XG zvsTcQxL%;A2k8$}J)tpA1tZfD_DsEw-z0K$e=PHWOmQKYegA>x6nmX)(ll+$hBnB3 z6ovd;C0*-1K$xG!f$U2rSccoQ?orj);@kk-rbJx4d^h3FNh3d;X9+zj4x(7q0H2mr zgMnKG{a|q76vxtO|3(Q~rVArZ^=$ z?{nCA^D0ZX#c>G)N^bzWFc~Y`IYPsxqgW!}k3&a$Fm`@9P=hN4GA}8{<{p8nuqL=$ zl7cM_%MY=Y1TyS<=w=NlQW>ek&tf9RyulE3H3!*G?~=6HSaQH`4`hC z-EX5fsu#mPc7}|`1K_-i(#e}U(K*s8P?xU)V@DgFUQqx(;oGoaAQQ~{>TuM|(M@!) zV)5cX;aLM8)EljY#ZW`o-UaYX(Le_CHNclupk#JBi7}eMCx(w@Vs;hxN2?!73^N~wfG4M*nA$PXCJ_XKqH;3xQrQ$P1p()RK%3S zA;ojN6XA#ngLNeFiWx(&lGeN3126l@bV^tqZZ+(IqI@$x?QBGu2a_HNHAA0b2YQ|R z0H#cKf%UCFV|dEE7BqkxW4qN^mU+NZN__ zNFh|Wb1-n-C6F>MqRWZnNL@*X$d_ekN?3+#A6YQIM}Yy6h+?;H;@4jey-yzD#%L?{ zm)xka7AK*EGePLGs}J%Pg+qG02{U?P(5o$#J}}xqPLaLfx4IQYOS_5w1zV`i_zLuW zMo27|0pqBH@Il?*n76wcDi&ElvwjF%TQwNIHx@#Yt#nXiK6dWE1&=>jj-rrsLUpVm z^OQW`$FY^j@39g5I zyu-A2$T-}=9;Y*GD*%DY7bv?V+LdcW$&54FUf~hsmD*uYS~JOr))N=OV;En37_Pey zVP7o=gNA~YWdi^J diff --git a/opm/ml/ml_tools/models/test_dense_tanh_10.model b/opm/ml/ml_tools/models/test_dense_tanh_10.model index efadda6e44d709064369f25592e18fc616b3b578..0462aa5b59150e38a9bef9c0dfdfcf0aeb6781bf 100644 GIT binary patch literal 1384 zcmZwEYdF+t7{~E3l4+zZk!p27wGNx8B+PUFh0+n()JAMkjZ>FHr9xL_P?KX3$xwBNj8}n+AWeAO{QyOvCBw@{cGRsi(Y)L`}aI=zv?U&YXXD&KOtG!uxM!x zj(O?h*g&%=K_UbTA7^|M_Xetx_n`9ADpYz;qFJ5m&|jS`4maL_xgINNozcG9St?CR z7C?x_j|E^;U;+!~sZ*~)nsI&KH8?r52ieUd7~Nz59yUcVzabVDMJ0l(@+|DoQKOzr zpCC3a@`Wsc0bGj=1jD=CICxzRJ@;~{?YD|i>v=mimZ~sQcnN2#U*svyUnFmfGw6M8 z(Ij)^DOCSZ2nnx?csCzwith_X@XG3~kahbq@pH=gr)ejL*{qH37_9HdSC3$ZUcLCwPOHQo%GI5O$eY&- zEOR|9=2+A9Q>@S^r5%k;9l+M2nOLV!gMs{WSaseCPa7@~HP1K>;5`gC?A=gVs7~2k zu7x7=2e{vVK7Kx+0rD4X@Q7&-Zane~*dF`wPu^SmawjELN(Feqs|t03YKd?71Kh;l z#Je+@L(PcPMEj>)v2#=zW*lyTxJnfkz77HBC>33O! zniw zeo#Ff*DObid!^8}!WIvPXi-D%7O?baB5J$HF!S>eq^+~TWJ`{Cutp9G9<@Smt{+`^ zp+Q7{tinxkT2%b6TVcP>R$`bRg9^{%5SnfcrAZ&LRlgNNO=3`9=Y)NF8sZ%eF7UE~ zOSu=;W7;6;Hc2(wJRdM=H;aVYpC@nh-h>g<-~+S<9+HDlobnWT9w+emCbsTy+;OZ}T7!N8;}{-1Mi%Yp z$1R82Fei5edzYU?iw+Cy8Y`j~@a@s@;X}`Sk%jJ==p5LU>uFuoY4jc5OQxQw1Yd3+ zJ+C9bR6S^2@)m2) zJVLwFvm{Ntg52-$Mcc(WP`j)M5{v6FPkanJf@-m|l&$+boJE~-eM&#RQGq6(8qCfd zCCXigp>?$kM_rvUV81V1%#OjJb~pF|m9+lVQ8IG87fSh4bf?Q6;~MoiZ0vcBGq2Ut zp-xxf!h=9Cd$tzr+caQwE&+QN73>Hs#h0J0Z_*S^U`Vo2P4E^$fY9{)2Sq@Cgg=2#f55jB2MH`uJv+KxuhL?MK3{SUWxK%M@)V*-ZUCu z4dK>OZ5YEAYbig5vGGHxHkR>b<{ilp&0xmdEZ);HX&;RT9RxVvm#wR>9->7XSHV`$Yy|wGgo3&x4Y^!<7q?l9AY`Ep#{4@?w}xwl zq}&A_T*}7bUMI{Pz7F2z3FOC)WZ2hq4igj#tP#(^J^37vWEr6S%{OTLatQog&8V(+ zHAoM)qT_Gzuv2{tB(YUc`tSv@uXCa!3%p@l@NBZezXK)mD!9*+3)U)sr-LpQW7hUT zunRMz9-C{?l2<}sb>UJ^9DLy9lzbBJ{2crKOn~fuF|^en2vh3u#+?e}?9`J6_sbyX zI-pwe2xF>e;YX{7-~(qPM!nXcmiG&`S9K!OjlY3mvSTRYD8@`%{x*imKgL=Ci5Lm2k?3!^C{c_`Pru8>A@OTLhW!x?mRnHE z8#j0c@*N?dst*>;&xD@zZeYjxfN9q>-7!NI+_qC-LuM#gUh)E`q-s1d&;pZt+|Ix> Vi?{0~m=h6Vrt diff --git a/opm/ml/ml_tools/models/test_relu_10.model b/opm/ml/ml_tools/models/test_relu_10.model index d9597021154518edd510455d0d4e12fd443bb5c3..de358df8ffff0ab5dbe0a150a849e8be0766c94c 100644 GIT binary patch delta 462 zcmV;<0WtpA1K0zQ6n_X!slMwczdkzLwY~gqNxssA>%Md&f@~qrUsVvVXp9xhOuIuLeJ`3r)S> z-5tK;7uMW~a=BLEI(9c-V@Lo$fe{J6^FKSGa`J^;vjy0e8Pz3Q{H zJ^%m!0E!WVI%pDuIsgCw000000P+xnI%N`rx&QzG0A&(`x&QzG0096100jU500IC2 E02Ig8X8-^I delta 462 zcmV;<0WtpA1K0zQ6n`v1V?JOEsy^Kb)V^`7_=snJK%RaMeNWL)bqP||} zQNA>x&be;?Y8Jj#n5n+Nx|BYgJAJ+&MHW8Ff2uwpZk;}`^b5U^@rgY$GMqk` z|KU9pACSHP^?xlriyv3LVy@i21+=`rfE6h{QIGe%C3vj76wrFU+GF89f5@f2zxVgP z%ZqkgDmIevG16-gycv-(bCm=~a+KxrD!@uWF@&w1Xv{rNl3z0>sc z^aN9KIZfXSmp@-Ql}^1wtl`ve{EEi1#>t?18gv(v;lD!56>s60(4z&UnR(bFakne{ zBti7O;rr+)5%ErrnKaia3p*zqF_3J@oYpsi^no$o*R!5`a`hkdZK9ALxoLtU(=DmX zB z?5@r`a1i|lTAy)D%dDgzGkyL~N(XX{7{}0zb@V7xMxNCnXc#WU$nhkS^`_8p=sJex zl;Qs8vE+X%4Wo)Ix)kPuOKx9a<2rLne)k&9$ytKVyy@)pG$}o8&A<$sRa~rKIVTki z;Q9GV&dNcbFEJXT&YpV|dg*TYdR-GvT&?3OE*DVM9U<@aT^v(iRYg|E9>cl4fJ-$Zxpf31eZZt;jLv_$ob3v@2{BxSDZ`vco%#0J>2)YxxK zDsc?CN^hWhs0kfGt#rR>7qp>rX7B5(qIs35bw%kA(drQM_o9S`47Y$#B1E(6^Rb07ec z)wAjJG7+D(tD7`QnM$!rjR&HK)E_uV7K(HPmh_UV`W&OGGv@h70l(?Zv-nXHL<0gq z)i^;-Vb>w8EN70}SRmC|pO-O#O1l9bw>RfNY#NJNiI`RBPomZR66&l!@W{|_qxGBR z@Twcf+2RMZ@P0UjI(C+SsLP`5JIpxES5Y{`ltE;3$D`89nB8!pfC)A|#rZRR6r9_| znC?qt7W?He(%C$+lIJpwEv^vAx;Ue0PMEc%m2Minz$+Yo$@4$;%igcDtZ$MdpiM=8 zW~}j6%>eQgMr<#hA^7!nra7e$OEw8ujdU9&^qirOysbzZI6{ImPq}w=7io`tl(N02 zkEE+vXE98eM*jbBi)fFzndJ%K*0%79FS<-zLi&2{f}J< zf3C;9Au&I4v|U*)EubD32@-$*Ced&idCsy$P*Fb3I(dTpL<``Q=19I@YROgd3?p8K z?6o2tSwv;P#jlGTy7l>x6(`95w>9Jv-p&Piehg;Vmfn^+fT@VYof9H9EVqe7y+@T+ zbMkQcz%#1PDJ0p-et0P+QLT+a-EbaFXbTy$a2W~jy++=VecZ%;9rjiAV0M)nf`67$ z{KE~j)VB_YFSc{Z{c0?}puMG=kiZd2XrO-!adm0?)U_BSXHMvZBMepLzYn?WG4_?Y-pr zYrbsxv{>o8shGk8+_<={h162I8j2-@DDzBFs_liW*t-!?tQq%S^D;_LP4_S_<;iOL zEw~z1F^QalC+(<1d#>Vv@ON3eMJYq%$B(PT4-FYF_*u+5B$o$^qxiAUZJOOh)JkmVe~ zxi*XWl*S08ytNkvIafG4hiv@rb`chBnTh1hDe&H&LV|ylK-N6pBgShOG1nhL_9P7< z#pg*^`vY_jN@=aJ7vjXX@RfKFYtGkTI5mLg%}l_?*1uxUKnFx)*-E3*eY9SwBrEq` zSRGH}p1WqFaPc|#RqTRKk{#6AC<=~NbKl%}LHi0M9=4wvWA7Ca%y&nS{T2h(e5lD| zY}pzzjWAb^I(5Q)-bs>$Jw=zvb<8;M0X%tk>i$H_Rkdj0!>;61A$64B)j?w;3+PpD Y|A*yIzBHKHvoCLG?d{#)P2Eub-_JF3hX4Qo literal 1884 zcmaKte>Bwj8pj!95Fslh+0@P5V<`z~%=h`0irup6tg^dFt+A{1BT+YdtJ@+LF@EIN z7z+8Zx0En`wVKcKRjG_hc50_VOk0yhOC|cblRMpWoYURYxu0`hpXYO)&!4aJejbjN zmKIBcf1vDQAWBzjo|+R+vo-gOcPPjk1@r4qFi_tg`A>5QJ2wU9NwjGCSTGnS-NBKX z;~3t=X3%~Tqi5+e0UtJ#IK~uhpZ)<(TtnK(;|MP39HYE92*L0EV@OL$4aTZWgNz5eGKf)wuO7k^_l9hZk*W=iaBRg;B;^+DOoT9zt3*Oo!J~FM)e`>`6TNF7O!yLrZC{N{KRCXIO&QOWg1y$hPJWLt4pM&v$#Mzr4q?^dD!F2hl09?2sF^Zm>4K$;`?ZR;mV7w$u5=RV1>s}+pZT?dDg*YK!G2YjA%mpET&!}J7Q=8DPJ zkeh4+IBx_}+Kq5g+7qdXEyWkjV(BsmW`>kN{BnP5<(R( zsIM;9^Ni=8#&XATqL-lJ9hFKUB<~uM*`HD)_Jb6wnvgFy#UuAp4)E`f!kVH~^vbrPMMaRb`Cpa&fa+KK6H5w0Dc10TG0qn!83acA%@>S?7Pbwj032L^xqKQ7*9B`4qkSpZ$9 z-@rThdpC#Ed3;;{+kc-+cehbU71qM}^{()vbS|`h&tWVNMx*wxB8;$&Mf>ufVO%#I zM)Ln88zQnWZXg5)Ha{kvb_7_g!=x|Y3hO`y^12BO%2|gJpElHc@jdK_Qc1?bkASf{ zN^&D%JCr!JfS^)`35lg(kBPKc&PUw>@#6A6(Ky5eDFCy6oNRR9PIC&L6e30OsygY*KEIv z(frZ#EQ$%i_rPx?BrtfCGD0r?Pfvj!(TlQ8D#0EP(T(c*_;H2KpR#J5~|Kk*fC zM>9|B3Nyh&+6NvkH<5q-G7c%@A$3%SlmG0+C6`55=-URTMTMxWoe5q#49J=bF>4cx gnM!oUf%2wlmv4RjU*5XZ(J;M3uV0I7)9g^@Ki!vak^lez diff --git a/opm/ml/ml_tools/scaler_layers.py b/opm/ml/ml_tools/scaler_layers.py index ca77c60f7e3..553eebc1825 100644 --- a/opm/ml/ml_tools/scaler_layers.py +++ b/opm/ml/ml_tools/scaler_layers.py @@ -1,6 +1,5 @@ -# Copyright (c) 2024 Birane Kane -# Copyright (c) 2024 Tor Harald Sandve -# Copyright (c) 2024 Peter Moritz von Schultzendorff +# Copyright (c) 2024 NORCE +# Copyright (c) 2024 UiB # This file is part of the Open Porous Media project (OPM). diff --git a/opm/ml/ml_tools/scalertest.py b/opm/ml/ml_tools/scalertest.py index a662bc1da5a..3834683f111 100644 --- a/opm/ml/ml_tools/scalertest.py +++ b/opm/ml/ml_tools/scalertest.py @@ -1,6 +1,5 @@ -# Copyright (c) 2024 Birane Kane -# Copyright (c) 2024 Tor Harald Sandve -# Copyright (c) 2024 Peter Moritz von Schultzendorff +# Copyright (c) 2024 NORCE +# Copyright (c) 2024 UiB # This file is part of the Open Porous Media project (OPM).