Ошибка измерения при построении графика потерь против эпох - PullRequest
0 голосов
/ 31 марта 2020

Это мой model.fit_generator (обучен в течение 40 эпох):

history = model.fit_generator(
 train_data_gen,
 steps_per_epoch=total_train // batch_size,
 epochs=epochs,
 validation_data=val_data_gen,
 validation_steps=total_val // batch_size
)

Это код для построения:

import matplotlib as plt
loss = history.history['loss']
plt.plot(epochs,loss, 'bo', label='Training Loss')
plt.show()

Это ошибка, которую я получаю:

ValueError: x and y must have same first dimension, but have shapes (1,) and (40,)

Я не понимаю, что я делаю неправильно. Может кто-нибудь помочь, пожалуйста?

1 Ответ

2 голосов
/ 31 марта 2020

Вы не должны пытаться построить против epochs (переменная), которая является просто одним числом (здесь 40), отсюда ошибка измерения. По сути, ваш вопрос - как составить список (loss); количество эпох неявно включено в список (это длина списка). Предполагая для простоты только 10 эпох и

loss = [0.7251979386058971,
  0.6640552306833333,
  0.6190941931069023,
  0.5602273066015956,
  0.48771809028534785,
  0.40796665995284814,
  0.33154681897220617,
  0.2698465999525444,
  0.227492357244586,
  0.1998490962115201]

, тогда просто

plt.plot(loss, 'bo')
plt.title('Training Loss')
plt.show()

дает

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...