Go to file
s444417 b265623f25
s444417-training/pipeline/head This commit looks good Details
s444417-evaluation/pipeline/head This commit looks good Details
jenkinsfile add steps
2022-05-31 10:17:12 +02:00
.dvc dvc 2022-05-31 10:14:04 +02:00
.vscode Dockerfile 2022-04-03 12:24:05 +02:00
lab7 mongo change url 2022-05-12 14:55:14 +02:00
lab8 fix trainScript line tabs 2022-05-20 18:16:52 +02:00
lab10 jenkinsfile add steps 2022-05-31 10:17:12 +02:00
src lab7 2022-05-07 15:37:17 +02:00
.dockerignore add mlflow 2022-05-14 11:50:56 +02:00
.dvcignore dvc 2022-05-31 10:14:04 +02:00
.gitignore dvc 2022-05-31 10:14:04 +02:00
Dockerfile dvc 2022-05-31 10:14:04 +02:00
Dockerfile Back conda 2022-05-21 13:11:10 +02:00
Jenkinsfile add -o option 2022-05-04 16:17:27 +02:00
Jenkinsfile.eval fix eval 2022-05-21 12:23:28 +02:00
Jenkinsfile2 add docker container to job stats 2022-04-11 10:42:30 +02:00
Jenkinsfile3 conda 2022-05-21 13:40:34 +02:00
Participants_Data_HPP.dvc dvc 2022-05-31 10:14:04 +02:00
README.md dvc 2022-05-31 10:14:04 +02:00
data.txt shuf fix 2022-03-28 11:35:26 +02:00
dvc.yaml dvc 2022-05-31 10:14:04 +02:00
environment.yml conda 2022-05-21 13:11:10 +02:00
house-price-dataset.zip fix gitignore 2022-04-25 21:56:08 +02:00
result.txt add input_example 2022-05-14 14:14:24 +02:00
sampleinp.txt add input_example 2022-05-14 14:14:24 +02:00
startscript1.sh eval script 2022-05-03 21:45:42 +02:00
startscript2.sh num lines script 2022-03-24 21:26:43 +01:00

README.md

Projekt na przedmiot inżynieria oprogramowania

IUM_6 opis sposobu rozwiązania zadań i podpunktów

Aktualne wyniki zadania IUM_6 dostępne są:

Zadanie 1

  1. stworzono job s444417-training
  2. s444417-training uruchamia się automatycznie po zakończeniu joba s444417-create-dataset, plik Jenkinsfile, przy pomocy build job. Kopiuje zbiór danych przy pomocy copyArtifact w pliku Jenkinsfile3
  3. Jenkinsfile3 przy pomocy archiveArtifacts
  4. powiadomienia, Jenkinsfile3 przy pomocy post emailext
  5. parametr EPOCH_NUMBER zadekalarowany w Jenkinsfile3, oznaczaj ilość epok, wykorzystywany przy wołaniu skryptu uczącego

Zadanie 2

  1. stworzono job s444417-evaluation
  2. evaluacja modelu metodą evaluate zawołana na modelu w pliku trainScript.py.Zapisanie wyniku do pliku trainResults.csv, w Jenkinsfile.eval archiveArtifact
  3. Jenkinsfile.eval w stagu "Copy prev build artifact" kopiuje trainResults.csv a jeśli go nie ma to catch łapie error, skrypt trainScript.py też obsługuje brak takiego pliku, bo otwiera go w trybie "a+"
  4. skrypt trainScript.py tworzy plota z wczytanych wartości odczytanych z pliku trainResults.csv i zapisuje wkres do pliku metric.py
  5. projekt odpala się po zakończeniu trenowania jenkinsfile3 build job oraz kopiuje sobie model copyArtifacts z uwzględnieniem brancha master
  6. copyArtifacts z s444417-create-dataset
  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

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 docker_env

Zadanie 2

  1. plik lab8/trainScript.py, używa MLflow, zawiera input_example,
  2. model z artifactów pobierany w lab8/Jenkinsfile.artifact, predykcja zrobiona skryptem lab8/predictArtifact.py, output predykcji konsola w projekcie
  3. zarejestronwany model np. http://tzietkiewicz.vm.wmi.amu.edu.pl/#/experiments/17/runs/811420769d2642b8be694693c75b3587/artifactPath/linear-model, model jest rejestrowany w pliku lab8/trainScript.py
  4. projekt predykcja realizowana skryptem lab8/predictMlflow.py i printowana w consoli builda,