Část 1: Vstup do soutěže o úžasné ceny
V tomto cvičení se seznámíš s vrstvou Dense – a uděláme to trochu netradičně. Představ si televizní show, kde ceny určuje neuronová síť. Soutěžící zadá:
- počet sourozenců,
- počet vypitých káv za dnešní den
- a jestli má rád/a rajčata.
Model pak předpoví, co soutěžící vyhraje.
Pro implementaci použiješ Keras. Vytvoříš model se vstupní vrstvou, která přijímá tři příznaky (počet sourozenců jako celé číslo, počet káv jako celé číslo a obliba rajčat jako 0 nebo 1). Vstup pak projde vrstvou Dense, která vrátí 3 pravděpodobnosti (tedy pravděpodobnosti výhry auta, dárkového poukazu nebo nic).
Vrstvy Input a Dense a také objekt Model z Kerasu jsou už naimportované. K dispozici máš také inicializátor vah init pro inicializaci vrstvy Dense.
Toto cvičení je součástí kurzu
Machine Translation with Keras
Pokyny k cvičení
- Definuj vstupní vrstvu, která přijímá právě 3 soutěžící (velikost dávky), přičemž každý soutěžící má 3 vstupy: počet sourozenců, počet káv a preferenci rajčat (velikost vstupu).
- Definuj vrstvu
Densese 3 výstupy, aktivacísoftmaxa inicializátoreminit. - Vypočítej predikce modelu pro
xpomocí definovaného modelu. - Zjisti nejpravděpodobnější cenu (jako celé číslo) pro každého soutěžícího.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)]))