added the resources for tensorflow1 benchmark.

Received from Eric Robin on 10/03/2025

work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3345]
This commit is contained in:
Guillaume Raffy 2025-03-20 07:34:19 +01:00
parent a8203589b7
commit e5cc65c015
3 changed files with 122 additions and 0 deletions

View File

@ -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=';')

View File

@ -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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB