From 8f164a5115849d9f8d7f3500665f19fe6397f915 Mon Sep 17 00:00:00 2001 From: s424714 Date: Wed, 10 May 2023 16:41:42 +0200 Subject: [PATCH] feat: add saving plot and reading previos artefacts --- Jenkinsfile-eval | 42 +++++++++++++++++++++--------------------- environment.yml | 1 + src/main.py | 4 +++- src/models/utils.py | 9 +++++---- 4 files changed, 30 insertions(+), 26 deletions(-) diff --git a/Jenkinsfile-eval b/Jenkinsfile-eval index f91dfb7..fddd348 100644 --- a/Jenkinsfile-eval +++ b/Jenkinsfile-eval @@ -32,6 +32,7 @@ node { copyArtifacts fingerprintArtifacts: true, projectName: 's424714-create-dataset', selector: buildParameter('BUILD_SELECTOR') //TODO from train copyArtifacts filter: '*', projectName: 's424714-training/train' + // copyArtifacts filter('*.csv') projectName: env.JOB_NAME, selector: specific(env.BUILD_NUMBER) // copyArtifacts fingerprintArtifacts: true, projectName: 's424714-create-dataset', selector: buildParameter('BUILD_SELECTOR') def dockerImage = docker.build("s424714-model") @@ -39,6 +40,23 @@ node { dockerImage.inside { withEnv(["TRANSFORMERS_CACHE=./.cache"]) { stage("Docker: cloning artifacts"){ + script { + if (currentBuild.previousBuild) { + try { + copyArtifacts(projectName: currentBuild.projectName, + selector: specific("${currentBuild.previousBuild.number}")) + + echo("The current build is ${currentBuild.number}") + sh 'mkdir -p ./results/' + sh 'mv acc.csv ./results/acc.csv' + } catch(err) { + echo("NOT FOUND previos artifacts") + // ignore error + } + } + } + + sh 'mkdir -p ./data/dataset' sh 'mv -t ./data/dataset train.csv test.csv val.csv' sh 'mv -t ./data True.csv Fake.csv' @@ -50,7 +68,9 @@ node { sh 'mkdir -p ./.cache' // sh "" sh 'python ./src/main.py --test ' + sh 'python ./src/plot.py ' sh "cp ./results/*.csv ${WORKSPACE}" + sh "cp ./results/*.png ${WORKSPACE}" } } @@ -61,26 +81,6 @@ node { stage('Saving artefacts') { echo 'Goodbye!' sh 'ls' - archiveArtifacts artifacts: '*.csv' - } - stage('Drawing plot') { - plot csvFileName: 'plot-accuracy.csv', - csvSeries: [[ - file: 'acc.csv', - exclusionValues: '', - displayTableFlag: false, - inclusionFlag: 'OFF', - url: '']], - group: 'Plot Group', - title: 'Accuracy', - style: 'line', - exclZero: false, - keepRecords: false, - logarithmic: false, - numBuilds: '', - useDescr: false, - yaxis: '', - yaxisMaximum: '', - yaxisMinimum: '' + archiveArtifacts artifacts: '*.csv',: '*.png' } } \ No newline at end of file diff --git a/environment.yml b/environment.yml index 9dbf082..136b961 100644 --- a/environment.yml +++ b/environment.yml @@ -14,5 +14,6 @@ dependencies: - pytorch - pytorch-cuda=11.8 - transformers + - matplotlib diff --git a/src/main.py b/src/main.py index 93297b0..07037c6 100644 --- a/src/main.py +++ b/src/main.py @@ -20,6 +20,8 @@ parser.add_argument("--train", action="store_true", default=False) parser.add_argument("--test", action="store_true", default=False) parser.add_argument("--model_path", type=str, default="results/model.pt") parser.add_argument("--results_path", type=str, default="results/results.csv") +parser.add_argument("--data_acc_path", type=str, default="./results/acc.csv") + # HYPER PARAMETERS parser.add_argument("--batch", "-b", type=int, default=2) parser.add_argument("--learning_rate", "--lr", type=float, default=1e-6) @@ -81,4 +83,4 @@ if __name__ == "__main__": batch_size=BATCH_SIZE, ) utils.save_results(labels=test_data["label"], results=results, file_path=args.results_path) - utils.save_data_to_csv("./results/acc.csv", accuracy) + utils.save_data_to_csv(args.data_acc_path, accuracy) diff --git a/src/models/utils.py b/src/models/utils.py index 1a4cd4d..a28a731 100644 --- a/src/models/utils.py +++ b/src/models/utils.py @@ -34,13 +34,14 @@ class utils: df.to_csv(file_path, index=False) @staticmethod - def save_data_to_csv(file_path: str, data: float) -> None: + def save_data_to_csv(file_path: str, build_id: int, data: float) -> None: file_path = Path(file_path) - df = pd.DataFrame([data]) + df = pd.DataFrame({"build_id": [build_id], "data": [data]}) df.to_csv(file_path, mode="a", header=False, index=False) if __name__ == "__main__": - x = 1.2 - utils.save_data_to_csv("./results/eval.csv", x) + x = 1.22 + build_id = 21 + utils.save_data_to_csv("./results/eval.csv", build_id, x)