Teil 1: Mach mit und hol dir coole Preise
In dieser Übung lernst du die Schicht „ Dense
“ kennen. Warum probierst du das nicht mal mit einer lustigen Übung aus? Stell dir vor, es gibt eine Spielshow, in der die Preise von einem neuronalen Netzwerk entschieden werden. Der Teilnehmer kommt rein.
- die Anzahl der Geschwister,
- die Anzahl der Kaffees, die ich heute getrunken habe, und
- ob sie Tomaten mögen oder nicht,
und das Modell sagt voraus, was der Kandidat gewinnen wird.
Dafür brauchst du Keras. Du musst ein Modell mit einer Eingabeschicht erstellen, die drei Merkmale akzeptiert (die Anzahl der Geschwister als ganze Zahl, die Anzahl der Kaffees als ganze Zahl und ob sie Tomaten mögen oder nicht als 0 oder 1). Dann geht die Eingabe durch eine Dense-Schicht, die drei Wahrscheinlichkeiten ausgibt (also die Wahrscheinlichkeit, ein Auto, einen Geschenkgutschein oder gar nichts zu gewinnen).
Input
Die Schichten „ Dense
“ sowie das Objekt „ Model
“ von Keras sind bereits importiert. Du bekommst auch einen Gewichtsinitialisierer namens „ init
“, um die Dense-Schicht zu initialisieren.
Diese Übung ist Teil des Kurses
Maschinelle Übersetzung mit Keras
Anleitung zur Übung
- Mach eine Eingabeschicht, die nur 3 Teilnehmer (Batchgröße) annimmt, wobei jeder Teilnehmer 3 Eingaben hat: Anzahl der Geschwister, Anzahl der Kaffees und Tomatenpräferenz (Eingabegröße).
- Definiere eine „
Dense
“-Schicht mit drei Ausgängen, einer Aktivierung „softmax
“ und „init
“ als Initialisierer. - Berechne die Modellvorhersagen für „
x
“ mit dem definierten Modell. - Hol dir den wahrscheinlichsten Preis (als ganze Zahl) für jeden Teilnehmer.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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)]))