Zacznij terazZacznij za darmo

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

Zobacz kurs

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ę Dense z 3 wyjściami, aktywacją softmax i init jako inicjalizatorem.
  • Oblicz predykcje modelu dla x przy 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)]))
Edytuj i uruchom kod