J'étudie actuellement les modèles de réseaux de neurones pour l'analyse d'images, avec l'ensemble de données MNIST. J'ai d'abord utilisé uniquement l'image pour construire un premier modèle. Puis j'ai créé une variable supplémentaire, qui est : 0 lorsque le chiffre est effectivement compris entre 0 et 4, et 1 lorsqu'il est supérieur ou égal à 5.
Je souhaite donc construire un modèle qui puisse prendre en compte ces deux informations : l'image du chiffre, et la variable supplémentaire que je viens de créer.
J'ai créé les deux premiers modèles, un pour l'image et un pour la variable exogène, comme suit :
import tensorflow as tf
from tensorflow import keras
image_model = keras.models.Sequential()
#First conv layer :
image_model.add( keras.layers.Conv2D( 64, kernel_size=3,
activation=keras.activations.relu,
input_shape=(28, 28, 1) ) )
#Second conv layer :
image_model.add( keras.layers.Conv2D( 32, kernel_size=3, activation=keras.activations.relu ) )
#Flatten layer :
image_model.add( keras.layers.Flatten() )
print( image_model.summary(), '\n' )
info_model = keras.models.Sequential()
info_model.add( keras.layers.Dense( 5, activation=keras.activations.relu, input_shape=(1,) ) )
print( info_model.summary() )
Ensuite, je voudrais concaténer les deux couches finales, pour enfin mettre une autre couche dense avec softmax pour prédire les probabilités de classe.
Je sais que c'est faisable en utilisant l'API fonctionnelle de Keras, mais comment le faire en utilisant tf.keras ?