From 4c274c38e5b6306856af54b171ec7988091ea4fb Mon Sep 17 00:00:00 2001 From: michalzareba Date: Sun, 23 May 2021 12:33:10 +0200 Subject: [PATCH] Save MLFlow model in training job --- lab08_mfl.py | 9 +++++--- .../variables/variables.data-00000-of-00001 | Bin 5765 -> 0 bytes model_movies/variables/variables.index | Bin 1662 -> 0 bytes movies_imdb/MLmodel | 20 ++++++++++++++++++ movies_imdb/conda.yaml | 10 +++++++++ movies_imdb/data/keras_module.txt | 1 + .../data/model}/saved_model.pb | Bin 111511 -> 110522 bytes .../variables/variables.data-00000-of-00001 | Bin 0 -> 5753 bytes .../data/model/variables/variables.index | Bin 0 -> 1662 bytes movies_imdb/data/save_format.txt | 1 + movies_imdb/input_example.json | 1 + 11 files changed, 39 insertions(+), 3 deletions(-) delete mode 100644 model_movies/variables/variables.data-00000-of-00001 delete mode 100644 model_movies/variables/variables.index create mode 100644 movies_imdb/MLmodel create mode 100644 movies_imdb/conda.yaml create mode 100644 movies_imdb/data/keras_module.txt rename {model_movies => movies_imdb/data/model}/saved_model.pb (57%) create mode 100644 movies_imdb/data/model/variables/variables.data-00000-of-00001 create mode 100644 movies_imdb/data/model/variables/variables.index create mode 100644 movies_imdb/data/save_format.txt create mode 100644 movies_imdb/input_example.json diff --git a/lab08_mfl.py b/lab08_mfl.py index 790b8f1..38998d4 100644 --- a/lab08_mfl.py +++ b/lab08_mfl.py @@ -46,11 +46,13 @@ def prepare_model(train_size_param, test_size_param, epochs, batch_size): ) y_pred = model.predict(x_test.values) + input_example = X_test.values[10] + rmse = mean_squared_error(y_test, y_pred) model.save("model_movies") - return model, rmse + return model, rmse, X_train, input_example train_size_param = float(sys.argv[1]) if len(sys.argv) > 1 else 0.8 @@ -66,7 +68,7 @@ with mlflow.start_run(): mlflow.log_param("epochs", epochs) mlflow.log_param("batch size", batch_size) - model, rmse = prepare_model( + model, rmse, X_train, input_example = prepare_model( train_size_param=train_size_param, test_size_param=test_size_param, epochs=epochs, @@ -75,4 +77,5 @@ with mlflow.start_run(): mlflow.log_metric("RMSE", rmse) - mlflow.keras.log_model(model, "movies_imdb") + signature = mlflow.models.signature.infer_signature(X_train.values, model.predict(X_train.values)) + mlflow.keras.save_model(model, "movies_imdb", input_example=input_example, signature=signature) diff --git a/model_movies/variables/variables.data-00000-of-00001 b/model_movies/variables/variables.data-00000-of-00001 deleted file mode 100644 index 6944a51ad10b9784a17354ced20accd3b7170a07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5765 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 O55j*pbgPuQ-v$7qb*&lz diff --git a/movies_imdb/MLmodel b/movies_imdb/MLmodel new file mode 100644 index 0000000..5066d8d --- /dev/null +++ b/movies_imdb/MLmodel @@ -0,0 +1,20 @@ +flavors: + keras: + data: data + keras_module: tensorflow.keras + keras_version: 2.4.0 + save_format: tf + python_function: + data: data + env: conda.yaml + loader_module: mlflow.keras + python_version: 3.8.5 +saved_input_example_info: + artifact_path: input_example.json + format: tf-serving + type: ndarray +signature: + inputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float64", "shape": [-1, 3]}}]' + outputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float32", "shape": [-1, + 1]}}]' +utc_time_created: '2021-05-23 10:26:24.815501' diff --git a/movies_imdb/conda.yaml b/movies_imdb/conda.yaml new file mode 100644 index 0000000..3fa4018 --- /dev/null +++ b/movies_imdb/conda.yaml @@ -0,0 +1,10 @@ +channels: +- defaults +- conda-forge +dependencies: +- python=3.8.5 +- pip +- pip: + - mlflow + - tensorflow==2.4.1 +name: mlflow-env diff --git a/movies_imdb/data/keras_module.txt b/movies_imdb/data/keras_module.txt new file mode 100644 index 0000000..2c73dfd --- /dev/null +++ b/movies_imdb/data/keras_module.txt @@ -0,0 +1 @@ +tensorflow.keras \ No newline at end of file diff --git a/model_movies/saved_model.pb b/movies_imdb/data/model/saved_model.pb similarity index 57% rename from model_movies/saved_model.pb rename to movies_imdb/data/model/saved_model.pb index 25a090350de6f3cd8b8863ea508f57e80fef841e..dec2bb9966a59b89097453f7453a49d9d0e38545 100644 GIT binary patch literal 110522 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 literal 111511 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 AZ2$lO literal 0 HcmV?d00001 diff --git a/movies_imdb/data/model/variables/variables.index b/movies_imdb/data/model/variables/variables.index new file mode 100644 index 0000000000000000000000000000000000000000..80cd1ccec12272063d6c9048787490ce3bdfbd14 GIT binary patch literal 1662 zcmZQzVB=tvV&Y(Akl~Ma_HcFf4)FK%3vqPvagFzP@^WX9Pp8lj*I@lH#~@Fz zVPTFwp{^W^KvQNgX|R~)HJ45mQQ#}dFGFXKg8WbPw;~%1*Ur>^n zn^~1wq@PQSL4TNlCQUBhreY!^R7Q-3A1pu(R~*@rL=}aB0hgCbz|$N+_cDXrtdU?U zn*Li()>MpK7sHKGn8O4#E#UgE=Vmfu1YC{KG=l}G>9S2nx3Hp+A(0`?tnh$QgU9rk z!<%aq1~s$7A7-FQk3FZy6BpFX3O`tZ8cxh-yDF+EMr=@ny{pi`2=r=c_S{z#hBm~s zIm|%QKC|tKBQCTdnr5(qoWQ#51%rtYmZWY(WCSoO{9pv;nPaC9Pogja7!{_l08NrR zrDjZA1TZR0U;}F4wX*ghAp$^Yol)TpDAj~I&Ca7R0wAV!umDX{bCTsCE&?E$TG)V^ zj_zFWfhJ60_xWY`j0h?204d)6_Sa1=1-_Kj+$d%mj+)>YGP4dW?p)HQDR9dK8>LA zc>>6y%+sMp3_vi0nSp@`#Q0;mgdapRf`|j37H(i*WG-M>!2=gN^0f5%S{{yFJYZ!Y PVca16cSE;IsrzjJVwkX} literal 0 HcmV?d00001 diff --git a/movies_imdb/data/save_format.txt b/movies_imdb/data/save_format.txt new file mode 100644 index 0000000..439ab29 --- /dev/null +++ b/movies_imdb/data/save_format.txt @@ -0,0 +1 @@ +tf \ No newline at end of file diff --git a/movies_imdb/input_example.json b/movies_imdb/input_example.json new file mode 100644 index 0000000..414c07f --- /dev/null +++ b/movies_imdb/input_example.json @@ -0,0 +1 @@ +{"inputs": [0.3076923076923066, 0.0018377625652137, 0.1073170731707316]} \ No newline at end of file