Проблема с пониманием графиков обученной моделью - PullRequest
0 голосов
/ 26 мая 2020

ч Я изучаю машинное обучение. Я обучил 2 класса на 3-х слойном CNN. Результат, который я получил:

Epoch 50/50

46/46 [==============================] - 209s 5s/step - loss: 0.3725 - accuracy: 0.8489 - val_loss: 0.3060 - val_accuracy: 0.8000 

Сэр, я попытался построить через историю и получил эти два графика, может кто-нибудь объяснить мне, что они объясняют, и если есть проблема, что мне делать, чтобы минимизировать ее. Спасибо.

import matplotlib.pyplot as plt


print(history.history.keys())
# summarize history for accuracy
plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()
# summarize history for loss
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()

enter image description here

1 Ответ

0 голосов
/ 26 мая 2020

Он показывает вам графики эволюции модели.

Во время обучения часть обучающих данных зарезервирована для проверки. Это означает, что при обучении каждой эпохи состояние модели оценивается с использованием зарезервированных данных проверки. Таким образом, оба графика показывают значения, полученные в cc и в потерях.

Априори кажется, что тренировки было недостаточно, поскольку ни одна из кривых, кажется, не сглаживается, когда она достигает 50 эпох. Один из вариантов - увеличить количество эпох. Другой способ - заставить модель быстрее достичь «оптимального решения», для этого вы можете использовать более мощный оптимизатор, такой как ADAM или RMSprop.

...