Część 1: Wygraj niesamowite nagrody
W tym ćwiczeniu poznasz warstwę Dense. Zrobimy to w zabawny sposób! Wyobraź sobie teleturniej, w którym nagrody są wyznaczane przez sieć neuronową. Uczestnik podaje:
- liczbę rodzeństwa,
- liczbę wypitych dziś kaw
- oraz to, czy lubi pomidory,
a model przewiduje, co uczestnik wygra.
Do implementacji użyjesz Keras. Musisz zbudować model z warstwą wejściową przyjmującą trzy cechy (liczba rodzeństwa jako liczba całkowita, liczba kaw jako liczba całkowita oraz preferencja dotycząca pomidorów jako 0 lub 1). Dane wejściowe przechodzą następnie przez warstwę Dense, która zwraca 3 prawdopodobieństwa (czyli prawdopodobieństwa wygrania samochodu, bonu podarunkowego lub nic).
Warstwy Input i Dense oraz obiekt Model z Keras są już zaimportowane. Dostępny jest również inicjalizator wag o nazwie init, służący do inicjalizacji warstwy Dense.
To ćwiczenie jest częścią kursu
Tłumaczenie maszynowe z Keras
Instrukcje do ćwiczenia
- Zdefiniuj warstwę wejściową, która przyjmuje wyłącznie 3 uczestników (rozmiar partii), gdzie każdy uczestnik ma 3 dane wejściowe: liczbę rodzeństwa, liczbę kaw i preferencję dotyczącą pomidorów (rozmiar wejścia).
- Zdefiniuj warstwę
Densez 3 wyjściami, aktywacjąsoftmaxiinitjako inicjalizatorem. - Oblicz predykcje modelu dla
xprzy użyciu zdefiniowanego modelu. - Wyznacz najbardziej prawdopodobną nagrodę (jako liczbę całkowitą) dla każdego uczestnika.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)]))