Deel 1: Maak kans op fantastische prijzen
In deze oefening leer je over de Dense-laag. Waarom niet met een leuke opdracht? Stel je een spelshow voor waar prijzen worden bepaald door een neuraal netwerk. De deelnemer voert in
- het aantal broers en zussen,
- het aantal koppen koffie van vandaag en
- of ze van tomaten houden of niet,
en het model voorspelt wat de deelnemer wint.
Om dit te bouwen, gebruik je Keras. Je maakt een model met een invoerlaag die drie kenmerken accepteert (het aantal broers en zussen als geheel getal, het aantal koppen koffie als geheel getal en of ze van tomaten houden als 0 of 1). Vervolgens gaat de invoer door een Dense-laag die 3 kansen uitstuurt (dus: de kans op het winnen van een auto, een cadeaubon of niets).
Input- en Dense-lagen en een Model-object uit Keras zijn al geïmporteerd. Je krijgt ook een gewichtsinitializer, init, om de Dense-laag te initialiseren.
Deze oefening maakt deel uit van de cursus
Machine Translation met Keras
Oefeninstructies
- Definieer een invoerlaag die alleen 3 deelnemers accepteert (batchgrootte), waarbij elke deelnemer 3 inputs heeft: aantal broers en zussen, aantal koppen koffie en tomatenvoorkeur (inputgrootte).
- Definieer een
Dense-laag met 3 outputs,softmax-activatie eninitals initializer. - Bereken de modelvoorspellingen voor
xmet het gedefinieerde model. - Haal de meest waarschijnlijke prijs (als geheel getal) op voor elke deelnemer.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)]))