Merge branch 'tmp'
Some checks failed
s470618-evaluation/pipeline/head There was a failure building this commit

This commit is contained in:
gedin 2023-05-24 16:51:53 +02:00
commit cea42abe41
5 changed files with 43 additions and 4 deletions

20
JenkinsfileEval Normal file
View File

@ -0,0 +1,20 @@
node {
stage('Preparation') {
checkout scm
copyArtifacts projectName: 's470618-metrics', filter: 'metrics.txt', fingerprintArtifacts: true, selector: lastSuccessful(), optional: true, target: './train-eval'
copyArtifacts projectName: 's470618-training', filter: '*.pt', fingerprintArtifacts: true, selector: lastSuccessful(), target: '.'
stage('Evaluate metrics') {
sh "pip install matplotlib"
sh "cd train-eval && ./eval.py"
sh "./plot_metrics.py"
}
}
stage('artifacts') {
echo 'saving artifacts'
archiveArtifacts 'metrics.txt', 'prediction.tsv', 'metrics.png'
}
}
}

View File

@ -1,6 +1,6 @@
node { node {
checkout scm checkout scm
def dockerimage = docker.build("train-image", "./train-eval") def dockerimage = docker.build("train-image", "dockerfile_train")
dockerimage.inside { dockerimage.inside {
stage('Preparation') { stage('Preparation') {
properties([ properties([

View File

@ -45,7 +45,7 @@ print ("The accuracy is", acc)
print ("The precission score is ", prec) print ("The precission score is ", prec)
print ("The recall score is ", recall) print ("The recall score is ", recall)
file = open('metrics.txt', 'w') file = open('metrics.txt', 'a')
file.write(str(acc) + '\t' + str(prec) + '\t' + str(recall)) file.write(str(acc) + '\t' + str(prec) + '\t' + str(recall))
file.close() file.close()

View File

@ -3,7 +3,7 @@ import numpy as np
import torch import torch
from torch import nn from torch import nn
import pandas as pd import pandas as pd
import subprocess # import subprocess
import sys import sys
from sklearn.model_selection import train_test_split from sklearn.model_selection import train_test_split
@ -47,7 +47,7 @@ if __name__ == "__main__":
Y = df[['Survived']] Y = df[['Survived']]
X.loc[:,('Sex')].replace(['female', 'male'], [0,1], inplace=True) #categorical data transformed to X.loc[:,('Sex')].replace(['female', 'male'], [0,1], inplace=True) #categorical data transformed to
X_train, X_test, Y_train, Y_test = train_test_split(X,Y, random_state=45, test_size=0.2, shuffle=True) #split the date into train and test sets X_train, X_test, Y_train, Y_test = train_test_split(X,Y, test_size=0.2, shuffle=True) #split the date into train and test sets
testing_data = pd.concat([X_test, Y_test], axis=1) testing_data = pd.concat([X_test, Y_test], axis=1)
testing_data.to_csv('testing_data.csv', sep=',') testing_data.to_csv('testing_data.csv', sep=',')

19
train-eval/plot_metrics.py Executable file
View File

@ -0,0 +1,19 @@
#!/usr/bin/python3
import matplotlib
import matplotlib.pyplot as plt
data = []
with open('metrics.txt', 'r') as metrics:
for line in metrics:
data.append(line.strip().split('\t'))
# print(acc)
labels = ['accuracy','precision','recall']
builds = [x for x in range(len(data))]
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
for i in range(3):
ax.plot(builds, [data[x][i] for x in range(len(data))], label=labels[i])
plt.legend()
plt.savefig('metrics.png')