.dvc | ||
.vscode | ||
lab7 | ||
lab8 | ||
lab10 | ||
src | ||
.dockerignore | ||
.dvcignore | ||
.gitignore | ||
data.txt | ||
Dockerfile | ||
Dockerfile Back | ||
dvc.yaml | ||
environment.yml | ||
house-price-dataset.zip | ||
Jenkinsfile | ||
Jenkinsfile2 | ||
Jenkinsfile3 | ||
Jenkinsfile.eval | ||
Participants_Data_HPP.dvc | ||
README.md | ||
result.txt | ||
sampleinp.txt | ||
startscript1.sh | ||
startscript2.sh |
Projekt na przedmiot inżynieria oprogramowania
IUM_6 opis sposobu rozwiązania zadań i podpunktów
Aktualne wyniki zadania IUM_6 dostępne są:
- s444417-create-dataset: build #244
- s444417-training: build #96
- s444417-evaluation: build #43
Zadanie 1
- stworzono job s444417-training
- 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
- Jenkinsfile3 przy pomocy archiveArtifacts
- powiadomienia, Jenkinsfile3 przy pomocy post emailext
- parametr EPOCH_NUMBER zadekalarowany w Jenkinsfile3, oznaczaj ilość epok, wykorzystywany przy wołaniu skryptu uczącego
Zadanie 2
- stworzono job s444417-evaluation
- evaluacja modelu metodą evaluate zawołana na modelu w pliku trainScript.py.Zapisanie wyniku do pliku trainResults.csv, w Jenkinsfile.eval archiveArtifact
- 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+"
- skrypt trainScript.py tworzy plota z wczytanych wartości odczytanych z pliku trainResults.csv i zapisuje wkres do pliku metric.py
- projekt odpala się po zakończeniu trenowania jenkinsfile3 build job oraz kopiuje sobie model copyArtifacts z uwzględnieniem brancha master
- copyArtifacts z s444417-create-dataset
- parametr BRANCH do wyboru konkretnej gałęzi, buildselector do wybrania builda w Jenkins.eval
- 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
- lab8/trainScript.py log_param: epoch i learning_rate i log_metric final_loss
- lab8/MLproject docker_env
Zadanie 2
- plik lab8/trainScript.py, używa MLflow, zawiera input_example,
- model z artifactów pobierany w lab8/Jenkinsfile.artifact, predykcja zrobiona skryptem lab8/predictArtifact.py, output predykcji konsola w projekcie
- 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
- projekt predykcja realizowana skryptem lab8/predictMlflow.py i printowana w consoli builda,