Частина 1: Виграйте неймовірні призи
У цій вправі ви ознайомитеся з шаром Dense. Чому б не зробити це у формі цікавої задачі? Уявімо, що є телешоу, де призи визначає нейронна мережа. Учасник повідомляє
- кількість братів і сестер,
- скільки кав випито сьогодні, і
- чи подобаються йому/їй помідори,
а модель передбачає, який приз отримає учасник.
Щоб це реалізувати, ви скористаєтеся Keras. Потрібно створити модель із вхідним шаром, який приймає три ознаки (кількість братів і сестер як ціле число, кількість кав як ціле число та вподобання помідорів як 0 або 1). Потім вхід проходить через шар Dense, який повертає 3 імовірності (тобто імовірності виграшу автомобіля, подарункового сертифіката або нічого).
Шари Input і Dense, а також обʼєкт Model з Keras уже імпортовано. Також надано ініціалізатор ваг init для ініціалізації шару Dense.
Ця вправа є частиною курсу
Machine Translation з Keras
Інструкції до вправи
- Визначте вхідний шар, який приймає рівно 3 учасників (batch size), де кожен має 3 вхідні значення: кількість братів і сестер, число випитих кав і вподобання помідорів (розмір входу).
- Визначте шар
Denseз 3 виходами, активацієюsoftmaxі ініціалізаторомinit. - Обчисліть передбачення моделі для
x, використавши визначену модель. - Отримайте найімовірніший приз (як ціле число) для кожного учасника.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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)]))