diff --git a/.woodpecker.yml b/.woodpecker.yml index ee952d1..1a79993 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,20 +1,13 @@ steps: - first-job: - image: busybox + "train": + image: nvcr.io/nvidia/tensorflow:23.10-tf2-py3 commands: - - echo "ci working....................b. " - cpu: - image: progrium/stress:latest - commands: /usr/bin/stress --cpu 20 --io 1 --vm 2 --vm-bytes 128M --timeout 60s - nvidia-test: - image: nvidia/cuda:11.6.2-base-ubuntu20.04 + - echo "starting python script" + - python run.py + "compress and upload": + image: alpine:3 commands: - - nvidia-smi - gpu: - image: oguzpastirmaci/gpu-burn:latest - - commands: - - cd /app - - ./gpu_burn 60 - - echo "burned. done" + - apk --no-cache add zip curl + - zip mymodel.zip mymodel.keras + - curl -F fileUpload=@mymodel.zip https://share.storage.sandbox.iuk.hdm-stuttgart.de/upload diff --git a/run.py b/run.py new file mode 100644 index 0000000..4ad0f64 --- /dev/null +++ b/run.py @@ -0,0 +1,89 @@ +import tensorflow as tf +from tensorflow import keras +import requests +import numpy as np +import os +# Version Information +# tensorflow 2.2.0 , Cudnn7.6.5 and Cuda 10.1 , python 3.8 +from keras import backend as K +K.clear_session() + +gpus = tf.config.experimental.list_physical_devices('GPU') +# if gpus: +# try: +# tf.config.experimental.set_virtual_device_configuration(gpus[0], [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=6024)]) +# except RuntimeError as e: +# print(e) +# os.exit(1) + +print(tf.config.experimental.list_physical_devices()) + +print(tf.__version__) + +print(tf.test.is_built_with_cuda()) + +(X_train, y_train), (X_test,y_test) = tf.keras.datasets.cifar10.load_data() + +(X_train, y_train), (X_test,y_test) = tf.keras.datasets.cifar10.load_data() + +print(X_train.shape,y_train.shape) + +classes = ["airplane","automobile","bird","cat","deer","dog","frog","horse","ship","truck"] + +print(classes[y_train[3][0]]) + +print("pre processing: scale images") + +X_train_scaled = X_train / 255 +X_test_scaled = X_test / 255 + +y_train_categorical = keras.utils.to_categorical( + y_train, num_classes=10, dtype='float32' +) +y_test_categorical = keras.utils.to_categorical( + y_test, num_classes=10, dtype='float32' +) + +print("model build") + + +def get_model(): + model = keras.Sequential([ + keras.layers.Flatten(input_shape=(32,32,3)), + keras.layers.Dense(3000, activation='relu'), + keras.layers.Dense(1000, activation='relu'), + keras.layers.Dense(10, activation='sigmoid') + ]) + + model.compile(optimizer='SGD', + loss='categorical_crossentropy', + metrics=['accuracy']) + return model + +with tf.device('/GPU:0'): + model = keras.Sequential([ + keras.layers.Flatten(input_shape=(32,32,3)), + keras.layers.Dense(3000, activation='relu'), + keras.layers.Dense(1000, activation='relu'), + keras.layers.Dense(10, activation='sigmoid') + ]) + # g + model.compile(optimizer='SGD', + loss='categorical_crossentropy', + metrics=['accuracy']) + model.fit(X_train_scaled, y_train_categorical, epochs=25) + model.save('mymodel.keras') + + print("finished training") + + myurl = 'https://share.storage.sandbox.iuk.hdm-stuttgart.de/upload' + + print("uploading file") + files = { + 'fileUpload':('mymodel.keras', open('mymodel.keras', 'rb'),'application/octet-stream') + } + + response = requests.post(myurl, files=files) + print(response,response.text) + +print("done") \ No newline at end of file