Première partie : Participez pour gagner des prix exceptionnels
Dans cet exercice, vous découvrirez la couche d'Dense
. Pourquoi ne pas le faire à travers un exercice amusant ? Imaginez un jeu télévisé où les prix sont déterminés par un réseau neuronal. Le participant entre
- le nombre de frères et sœurs,
- le nombre de cafés consommés aujourd'hui et
- si vous appréciez les tomates ou non,
et le modèle prédit ce que le participant va gagner.
Pour mettre cela en œuvre, vous utiliserez Keras. Vous devrez créer un modèle avec une couche d'entrée qui accepte trois caractéristiques (le nombre de frères et sœurs sous forme d'entier, le nombre de cafés sous forme d'entier et s'ils aiment les tomates ou non sous forme de 0 ou 1). Ensuite, l'entrée passe par une couche dense qui génère trois probabilités (c'est-à-dire les probabilités de gagner une voiture, un bon d'achat ou rien).
Input
Les couches « Dense
» ainsi que l'objet « Model
» de Keras sont déjà importés. Vous disposez également d'un initialiseur de poids appelé « init
» pour initialiser la couche Dense.
Cet exercice fait partie du cours
Traduction automatique avec Keras
Instructions
- Définissez une couche d'entrée qui n' accepte que 3 participants (taille du lot), où chaque participant dispose de 3 entrées : nombre de frères et sœurs, nombre de cafés et préférence pour les tomates (taille de l'entrée).
- Définissez une couche de réseau neuronal (
Dense
) qui comporte 3 sorties, une activation par récurrence (softmax
) et une initialisation aléatoire (init
). - Calculez les prédictions du modèle pour
x
à l'aide du modèle défini. - Obtenez le prix le plus probable (sous forme d'entier) pour chaque participant.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Define an input layer with batch size 3 and input size 3
inp = Input(____=(____,____))
# Get the output of the 3 node Dense layer
pred = ____(____, ____=____, kernel_initializer=init, bias_initializer=init)(inp)
model = Model(inputs=inp, outputs=pred)
names = ["Mark", "John", "Kelly"]
prizes = ["Gift voucher", "Car", "Nothing"]
x = np.array([[5, 0, 1], [0, 3, 1], [2, 2, 1]])
# Compute the model prediction for x
y = ____.____(____)
# Get the most probable class for each sample
classes = np.____(____, ____)
print("\n".join(["{} has probabilities {} and wins {}".format(n,p,prizes[c]) \
for n,p,c in zip(names, y, classes)]))