Aan de slagGa gratis aan de slag

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

Cursus bekijken

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 en init als initializer.
  • Bereken de modelvoorspellingen voor x met 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)]))
Code bewerken en uitvoeren