Чи потрібно нам більше даних?
Час перевірити, чи дає користь моделі model для набору даних digits збільшення кількості тренувальних прикладів!
Щоб звести код до мінімуму, усе необхідне вже ініціалізовано і готове до використання:
- Створена щойно
model. X_train,y_train,X_testіy_test.initial_weightsвашої моделі, збережені після викликуmodel.get_weights().- Попередньо визначений список розмірів тренування:
training_sizes. - Попередньо визначений callback дострокової зупинки, що відстежує loss:
early_stop. - Два порожні списки для збереження результатів оцінки:
train_accsіtest_accs.
Навчіть модель на різних обсягах тренувальних даних і оцініть результати на X_test.
Завершіть побудовою графіка результатів за допомогою plot_results().
Повний код для цієї вправи є на слайдах!
Ця вправа є частиною курсу
Вступ до Deep Learning з Keras
Інструкції до вправи
- Отримайте частку тренувальних даних, визначену значенням
size, яке зараз опрацьовується в циклі. - Встановіть ваги моделі на
initial_weightsза допомогоюset_weights()і навчіть модель на цій частці даних, використавшиearly_stopяк callback. - Оцініть і збережіть точність для тренувальної частки та для тестового набору.
- Викличте
plot_results(), передавши тренувальні та тестові точності для кожного розміру тренування.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
for size in training_sizes:
# Get a fraction of training data (we only care about the training data)
X_train_frac, y_train_frac = X_train[:size], y_train[:size]
# Reset the model to the initial weights and train it on the new training data fraction
model.set_weights(____)
model.fit(X_train_frac, y_train_frac, epochs = 50, callbacks = [early_stop])
# Evaluate and store both: the training data fraction and the complete test set results
train_accs.append(model.evaluate(____, ____)[1])
test_accs.append(model.evaluate(____, ____)[1])
# Plot train vs test accuracies
plot_results(____, ____)