predict artifact
This commit is contained in:
parent
f5175a9517
commit
a08f50d333
12
README.md
12
README.md
@ -22,3 +22,15 @@ Zadanie 2
|
|||||||
6. copyArtifacts z s444417-create-dataset
|
6. copyArtifacts z s444417-create-dataset
|
||||||
7. parametr BRANCH do wyboru konkretnej gałęzi, buildselector do wybrania builda w Jenkins.eval
|
7. parametr BRANCH do wyboru konkretnej gałęzi, buildselector do wybrania builda w Jenkins.eval
|
||||||
8. powiadomenie mail wraz z metryką loss wysyłane w pliku Jenkinsfile.eval post emailext
|
8. powiadomenie mail wraz z metryką loss wysyłane w pliku Jenkinsfile.eval post emailext
|
||||||
|
|
||||||
|
IUM_8 opis sposobu rozwiązania zadań i podpunktów
|
||||||
|
---
|
||||||
|
Zadanie 1
|
||||||
|
1. lab8/trainScript.py log_param: epoch i learning_rate i log_metric final_loss
|
||||||
|
2. lab8/MLproject
|
||||||
|
|
||||||
|
Zadanie 2
|
||||||
|
1. na końcu pliku lab8/trainScript.py, zawiera input_example, MLproject docker_env
|
||||||
|
2.
|
||||||
|
3. zarejestronwany model np. http://tzietkiewicz.vm.wmi.amu.edu.pl/#/experiments/17/runs/811420769d2642b8be694693c75b3587/artifactPath/linear-model, model rejestruje w pliku lab8/trainScript.py
|
||||||
|
4. [projekt](https://tzietkiewicz.vm.wmi.amu.edu.pl:8080/job/s444417-predict-s449288-from-registry/) realizuje predykcje skryptem lab8/predictMlflow.py i printuje ją w consoli builda,
|
23
lab8/Jenkinsfile.artifact
Normal file
23
lab8/Jenkinsfile.artifact
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
pipeline {
|
||||||
|
agent {
|
||||||
|
dockerfile {
|
||||||
|
args '-v /mlruns:/mlruns'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parameters {
|
||||||
|
buildSelector(
|
||||||
|
defaultSelector: lastSuccessful(),
|
||||||
|
description: 'Which build to use for copying artifacts',
|
||||||
|
name: 'BUILD_SELECTOR'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage('Stage') {
|
||||||
|
steps {
|
||||||
|
copyArtifacts filter: 'mlruns.tar.gz', projectName: 's449288-training/master', selector: buildParameter('BUILD_SELECTOR')
|
||||||
|
sh 'mkdir -p mlrunsArtifact && tar xzf mlruns.tar.gz -C mlrunsArtifact --strip-components 1'
|
||||||
|
sh "python lab8/predictArtifact.py"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -11,3 +11,5 @@ entry_points:
|
|||||||
epochs: {type: float, default: 3}
|
epochs: {type: float, default: 3}
|
||||||
learning_rate: {type: float, default: 0.1}
|
learning_rate: {type: float, default: 0.1}
|
||||||
command: "python ./lab8/trainScript.py {epochs} {learning_rate}"
|
command: "python ./lab8/trainScript.py {epochs} {learning_rate}"
|
||||||
|
test:
|
||||||
|
command: "python ./src/evalScript.py"
|
||||||
|
14
lab8/predictArtifact.py
Normal file
14
lab8/predictArtifact.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import mlflow
|
||||||
|
import numpy as np
|
||||||
|
import json
|
||||||
|
|
||||||
|
logged_model = 'mlrunsArtifact/14/80fe21a0804844088147d15a3cebb3e5/artifacts/lego-model'
|
||||||
|
loaded_model = mlflow.pyfunc.load_model(logged_model)
|
||||||
|
|
||||||
|
with open(f'{logged_model}/input_example.json') as f:
|
||||||
|
input_example_data = json.load(f)
|
||||||
|
|
||||||
|
input_example = np.array(input_example_data['inputs']).reshape(-1,)
|
||||||
|
|
||||||
|
print(f'Input: {input_example}')
|
||||||
|
print(f'Prediction: {loaded_model.predict(input_example)}')
|
@ -1,30 +1,14 @@
|
|||||||
# import mlflow
|
|
||||||
# import numpy as np
|
|
||||||
# import json
|
|
||||||
#
|
|
||||||
# logged_model = '/mlruns/14/80fe21a0804844088147d15a3cebb3e5/artifacts/lego-model'
|
|
||||||
#
|
|
||||||
# # Load model as a PyFuncModel.
|
|
||||||
# loaded_model = mlflow.pyfunc.load_model(logged_model)
|
|
||||||
#
|
|
||||||
# with open(f'{loaded_model}/input_example.json') as f:
|
|
||||||
# input_example_data = json.load(f)
|
|
||||||
#
|
|
||||||
# # Predictions
|
|
||||||
# print(f'input: {input_example_data}')
|
|
||||||
# print(f'predictions: {loaded_model.predict(input_example_data)}')
|
|
||||||
|
|
||||||
import mlflow
|
import mlflow
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import json
|
import json
|
||||||
|
|
||||||
registry_path = '/mlruns/14/80fe21a0804844088147d15a3cebb3e5/artifacts/lego-model'
|
logged_model = '/mlruns/14/80fe21a0804844088147d15a3cebb3e5/artifacts/lego-model'
|
||||||
model = mlflow.pyfunc.load_model(registry_path)
|
loaded_model = mlflow.pyfunc.load_model(logged_model)
|
||||||
|
|
||||||
with open(f'{registry_path}/input_example.json') as f:
|
with open(f'{logged_model}/input_example.json') as f:
|
||||||
input_example_data = json.load(f)
|
input_example_data = json.load(f)
|
||||||
|
|
||||||
input_example = np.array(input_example_data['inputs']).reshape(-1,)
|
input_example = np.array(input_example_data['inputs']).reshape(-1,)
|
||||||
|
|
||||||
print(f'Input: {input_example}')
|
print(f'Input: {input_example}')
|
||||||
print(f'Prediction: {model.predict(input_example)}')
|
print(f'Prediction: {loaded_model.predict(input_example)}')
|
Loading…
Reference in New Issue
Block a user