This commit is contained in:
Wojciech Lidwin 2023-05-12 15:17:15 +02:00
parent 508f315ef4
commit 96e4c03d11
3 changed files with 40 additions and 18 deletions

View File

@ -17,6 +17,7 @@ RUN pip3 install matplotlib
RUN pip3 install sacred
RUN pip3 install pymongo
RUN pip3 install dvc
RUN pip3 install mlflow
WORKDIR /app

View File

@ -25,7 +25,7 @@ node {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 's487197', url: 'https://git.wmi.amu.edu.pl/s487197/ium_487197']]])
}
stage('Dockerfile'){
def testImage = docker.image('s487197/ium:52')
def testImage = docker.image('s487197/ium:55')
testImage.inside{
copyArtifacts filter: 'baltimore_train.csv', projectName: 's487197-create-dataset'
sh "python3 ium_sacred.py -epochs $EPOCHS -lr $LR -validation_split $VALIDATION_SPLIT"

View File

@ -11,6 +11,13 @@ import numpy as np
from sklearn.preprocessing import LabelEncoder
import argparse
import shutil
import mlflow
import logging
logging.basicConfig(level=logging.WARN)
logger = logging.getLogger(__name__)
mlflow.set_tracking_uri("http://localhost:5000")
mlflow.set_experiment("s487197")
def get_x_y(data):
@ -40,24 +47,38 @@ def train_model():
data_train, x_train, y_train = get_x_y(train)
normalizer = tf.keras.layers.Normalization(axis=1)
normalizer.adapt(np.array(x_train))
model = Sequential(normalizer)
model.add(Dense(64, activation="relu"))
model.add(Dense(10, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(5, activation="softmax"))
model.compile(Adam(learning_rate=args.lr), loss='sparse_categorical_crossentropy', metrics = ['accuracy'] )
model.summary()
with mlflow.start_run() as run:
print("MLflow run experiment_id: {0}".format(run.info.experiment_id))
print("MLflow run artifact_uri: {0}".format(run.info.artifact_uri))
mlflow.log_param("epochs", args.epochs)
mlflow.log_param("lr", args.lr)
mlflow.log_param("validation_split", args.validation_split)
model = Sequential(normalizer)
model.add(Dense(64, activation="relu"))
model.add(Dense(10, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(5, activation="softmax"))
model.compile(Adam(learning_rate=args.lr), loss='sparse_categorical_crossentropy', metrics = ['accuracy'] )
model.summary()
history = model.fit(
x_train,
y_train,
epochs=args.epochs,
validation_split=args.validation_split)
hist = pd.DataFrame(history.history)
hist['epoch'] = history.epoch
model.save('baltimore_model')
shutil.make_archive('baltimore', 'zip', 'baltimore_model')
history = model.fit(
x_train,
y_train,
epochs=args.epochs,
validation_split=args.validation_split)
mlflow.log_metric("loss", float(, hist['loss']))
mlflow.log_metric('accuracy', float(hist['accuracy']))
signature = mlflow.models.signature.infer_signature(train_x, model.predict(x_test))
if tracking_url_type_store != "file":
mlflow.sklearn.log_model(model, "wines-model", registered_model_name="ElasticnetWineModel", signature=signature)
else:
mlflow.sklearn.log_model(model, "model", signature=signature)
hist = pd.DataFrame(history.history)
hist['epoch'] = history.epoch
model.save('baltimore_model')
shutil.make_archive('baltimore', 'zip', 'baltimore_model')
train_model()