AttributeError: у объекта 'Model' нет атрибута 'epoch' - Keras - PullRequest
0 голосов
/ 21 декабря 2018

Я использую автокодер в кератах, выполняя шаги, описанные в простом автоэнкодере на основе полностью подключенного слоя (https://blog.keras.io/building-autoencoders-in-keras.html)

wiki_autoencoder.fit(wiki_train, wiki_train,
                epochs=100,
                batch_size=256,
                shuffle=True,
                validation_data=(wiki_test, wiki_test))  

После обучения и перекрестной проверки. Отображение результатов даетмне ошибка приведена ниже:

    loss = wiki_autoencoder.history.history['loss']
    val_loss = wiki_autoencoder.history.history['val_loss']
    epochs = range(epochs)
    plt.figure()
    plt.plot(epochs, loss, 'bo', label='Training loss')
    plt.plot(epochs, val_loss, 'b', label='Validation loss')
    plt.title('Training and validation loss')
    plt.legend()
    plt.show()


NameError                                 Traceback (most recent call last)
<ipython-input-32-6acdd795daf3> in <module>()
      1 loss = wiki_autoencoder.history.history['loss']
      2 val_loss = wiki_autoencoder.history.history['val_loss']
----> 3 epochs = range(epochs)
      4 plt.figure()
      5 plt.plot(epochs, loss, 'bo', label='Training loss')

NameError: name 'epochs' is not defined

Второе, что я попробовал, дает результат: не найдены дескрипторы с метками для вставки в легенду. Однако создается график. Как мне решить эту проблему

enter image description here

plt.plot(wiki_autoencoder.history.history['val_loss'], 'r', wiki_autoencoder.history.history['loss'], 'bo')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.title('Training and validation loss')
plt.legend()
plt.show()

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

На самом деле вы можете найти эпохи из объекта истории.

epochs = wiki_autoencoder.history.epoch

Это даст вам эпохи, для которых модель была обучена.

0 голосов
/ 21 декабря 2018

Вам необходимо правильно определить диапазон, так как не определены эпохи, которые вы использовали внутри range ().Вы можете использовать любой другой номер кроме 100 в зависимости от ваших требований.

epochs = range(100)
...