iprbench/iprbench/resources/tensorflow1/DS_Train.py

52 lines
1.7 KiB
Python

# -*- 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 time
import tensorflow as tf
import numpy as np
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"
)
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)
###################################################################
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)