diff --git a/iprbench/resources/tensorflow1/DS_Data.py b/iprbench/resources/tensorflow1/DS_Data.py new file mode 100644 index 0000000..33f8d8f --- /dev/null +++ b/iprbench/resources/tensorflow1/DS_Data.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +""" +Created on Wed Sep 25 14:19:41 2024 + +@author: errobin +""" + +import numpy as np #pour faire du calcul matriciel +from PIL import Image #pour lire une image +import matplotlib.pyplot as plt #pour faire des tracer + +#lecture image ###################################### + +image_file = Image.open("GAN.bmp") +image_bmp = 1.*np.array(image_file) # on transforme le fichier en matrice nommée image_bmp +image_file.close() #fermeture du fichier en lecture +##################################################### + + + + +# code pour aider à comprendre une image +################################################################################ + +# recupère les dimension de l'image ############### +dim=image_bmp.shape + +nb_ligne=dim[0] +nb_colonne=dim[1] +image_traitee=np.zeros((nb_ligne,nb_colonne)) #déclaration d'un tableau au dimension de l'image +################################################### + +# Affecte les valeurs de la matrice image_bmp à image_traitee +for colonne in range(0,nb_colonne): + for ligne in range(0,nb_ligne): + + image_traitee[ligne,colonne]=image_bmp[ligne,colonne]#regarder les tableaux avec variable explorer + +# plt.imshow(image_traitee,'gray') +# plt.show() +################################################################################# + +# fin code pour comprendre une image + + + + +# DS partie Data +#complétez le code suivant pour créer votre database tq; x_train = position du pixel et y_target = couleur du pixel + + + + +#declaration des tableaux +X_train=np.zeros((nb_colonne*nb_ligne,2)) +Y_target=np.zeros((nb_colonne*nb_ligne)) + +compt=0 +for colonne in range(0,nb_colonne): + for ligne in range(0,nb_ligne): + X_train[compt,0]=colonne + X_train[compt,1]=ligne + + Y_target[compt]=image_bmp[colonne,ligne]/255. + compt=compt+1 + +#sauvagarde de la database +np.savetxt("X_train.txt", X_train, delimiter=';') +np.savetxt("Y_target.txt", Y_target, delimiter=';') diff --git a/iprbench/resources/tensorflow1/DS_Train.py b/iprbench/resources/tensorflow1/DS_Train.py new file mode 100644 index 0000000..bc57397 --- /dev/null +++ b/iprbench/resources/tensorflow1/DS_Train.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +""" +Created on Wed Sep 25 14:38:32 2024 + +@author: errobin +""" + +# DS partie Train +#complétez/joué sur les hyperparamètres (vitesse d'apprentissage et nb epoch) et sur l'architecture du modèle pour l'entrainer et pour le sauver (une fois entrainé) +# ASTUCE un loss inférieur à 0.005 permets déjà d'obtenir des résultats intéréssants + + +import tensorflow as tf +import numpy as np +from PIL import Image #pour lire une image + + +X_train = np.genfromtxt('X_train.txt',delimiter=';') +Y_target = np.genfromtxt('Y_target.txt',delimiter=';') + +#Partie ANN definition + entrainement +#***************************************** +model = tf.keras.models.Sequential() + +model.add(tf.keras.layers.Dense(2048, activation="relu")) +model.add(tf.keras.layers.Dense(1024, activation="relu")) +model.add(tf.keras.layers.Dense(512, activation="relu")) +model.add(tf.keras.layers.Dense(256, activation="relu")) +model.add(tf.keras.layers.Dense(128, activation="relu")) +model.add(tf.keras.layers.Dense(64, activation="relu")) +model.add(tf.keras.layers.Dense(32, activation="relu")) +model.add(tf.keras.layers.Dense(1)) + +model.compile( + loss="mse", + optimizer="adam" +) + + + +###### D'après à quoi peuvent servir le code des lignes 38 à 41 +def scheduler(epoch):# dans cette fonction il est possible de faire des test if en fonction de epoch pour retourner différente valeur de la ??? + return 0.0001 + +callback_vitesse_apprentissage = tf.keras.callbacks.LearningRateScheduler(scheduler) +################################################################### + +import time +start_time = time.time() +model.fit(X_train, Y_target, epochs=3,verbose=1,callbacks=[callback_vitesse_apprentissage]) +end_time = time.time() +temps_cal = end_time - start_time +print(temps_cal) \ No newline at end of file diff --git a/iprbench/resources/tensorflow1/GAN.bmp b/iprbench/resources/tensorflow1/GAN.bmp new file mode 100644 index 0000000..0409f13 Binary files /dev/null and b/iprbench/resources/tensorflow1/GAN.bmp differ