LAB 6 - 1, Add pipeline for training
This commit is contained in:
parent
e89cd155ae
commit
0fce6cd355
29
Jenkinsfile_train
Normal file
29
Jenkinsfile_train
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
pipeline {
|
||||||
|
agent {
|
||||||
|
docker { image 'jarmosz/ium:1.1' }
|
||||||
|
}
|
||||||
|
parameters {
|
||||||
|
string(name: 'optioms', description: 'Trainig script options')
|
||||||
|
buildSelector(defaultSelector: lastSuccessful(), description: 'Use latest build', name: 'BUILD_SELECTOR')
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage("Copy artifacts"){
|
||||||
|
steps {
|
||||||
|
copyArtifacts fingerprintArtifacts: true, projectName: 's434704-create-dataset', selector: buildParameter('BUILD_SELECTOR')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage("Run training"){
|
||||||
|
sh "python3 training.py ${params.options}"
|
||||||
|
}
|
||||||
|
stage('Save trained model files') {
|
||||||
|
steps{
|
||||||
|
archiveArtifacts 'linear_regression/**'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
post {
|
||||||
|
always {
|
||||||
|
mail body: ${currentBuild.currentResult}, subject: 's434704', to: '26ab8f35.uam.onmicrosoft.com@emea.teams.ms'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
43
training.py
Normal file
43
training.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import pandas as pd
|
||||||
|
import numpy as np
|
||||||
|
import tensorflow as tf
|
||||||
|
import os.path
|
||||||
|
|
||||||
|
from tensorflow import keras
|
||||||
|
from tensorflow.keras import layers
|
||||||
|
from tensorflow.keras.layers.experimental import preprocessing
|
||||||
|
|
||||||
|
pd.set_option("display.max_columns", None)
|
||||||
|
|
||||||
|
# Wczytanie danych
|
||||||
|
train_data = pd.read_csv("./train.csv")
|
||||||
|
test_data = pd.read_csv("./test.csv")
|
||||||
|
|
||||||
|
# Stworzenie modelu
|
||||||
|
columns_to_use = ['Year', 'Runtime', 'Netflix']
|
||||||
|
train_X = tf.convert_to_tensor(train_data[columns_to_use])
|
||||||
|
train_Y = tf.convert_to_tensor(train_data[["IMDb"]])
|
||||||
|
test_X = tf.convert_to_tensor(test_data[columns_to_use])
|
||||||
|
test_Y = tf.convert_to_tensor(test_data[["IMDb"]])
|
||||||
|
|
||||||
|
normalizer = preprocessing.Normalization(input_shape=[3,])
|
||||||
|
normalizer.adapt(train_X)
|
||||||
|
|
||||||
|
if os.path.isdir('linear_regression'):
|
||||||
|
model = keras.models.load_model('linear_regression')
|
||||||
|
else:
|
||||||
|
model = keras.Sequential([
|
||||||
|
keras.Input(shape=(len(columns_to_use),)),
|
||||||
|
normalizer,
|
||||||
|
layers.Dense(30, activation='relu'),
|
||||||
|
layers.Dense(10, activation='relu'),
|
||||||
|
layers.Dense(25, activation='relu'),
|
||||||
|
layers.Dense(1)
|
||||||
|
])
|
||||||
|
|
||||||
|
model.compile(loss='mean_absolute_error',
|
||||||
|
optimizer=tf.keras.optimizers.Adam(0.001))
|
||||||
|
|
||||||
|
model.fit(train_X, train_Y, verbose=0, epochs=100)
|
||||||
|
|
||||||
|
model.save('linear_regression')
|
Loading…
Reference in New Issue
Block a user