Створення автокодувальника
Автокодувальники мають кілька цікавих застосувань, зокрема виявлення аномалій та очищення зображень від шуму. Вони мають на меті відтворити на виході те саме, що й на вході. Вхід стискається до простору меншої розмірності — він кодується. Потім модель вчиться декодувати його назад до початкового вигляду.
Ви закодуєте й декодуєте набір даних MNIST з рукописними цифрами. Прихований шар закодує 32-вимірне подання зображення, яке спочатку складається з 784 пікселів (28 × 28). По суті, автокодувальник навчиться перетворювати початкове зображення з 784 пікселів на стиснене подання з 32 пікселями й використовувати це кодування, щоб відновити початкове зображення з 784 пікселів.
Модель Sequential і шари Dense вже підготовлено для використання.
Створімо автокодувальник!
Ця вправа є частиною курсу
Вступ до Deep Learning з Keras
Інструкції до вправи
- Створіть модель
Sequential. - Додайте щільний шар із кількістю нейронів, що дорівнює розмірам закодованого зображення, та з
input_shape, рівним кількості пікселів у початковому зображенні. - Додайте фінальний шар із кількістю нейронів, що дорівнює кількості пікселів у вхідному зображенні.
- Скомпілюйте ваш
autoencoder, використовуючи оптимізаторadadeltaі функцію втратbinary_crossentropy, після чого виведіть його підсумок.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Start with a sequential model
autoencoder = ____
# Add a dense layer with input the original image pixels and neurons the encoded representation
autoencoder.add(____(____, input_shape=(____, ), activation="relu"))
# Add an output layer with as many neurons as the orginal image pixels
autoencoder.add(____(____, activation = "sigmoid"))
# Compile your model with adadelta
autoencoder.compile(optimizer = ____, loss = ____)
# Summarize your model structure
____