属性错误:'Model'对象没有属性'epoch' - Keras

4
我在Keras中构建了一个自编码器,按照基于全连接层的简单自编码器的步骤进行(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个回答

2

您需要正确定义范围,因为您在range()中使用了未定义的epochs。根据您的需求,除了100之外,您可以使用任何其他数字。

epochs = range(100)

1

你可以从历史对象中找到时代。

epochs = wiki_autoencoder.history.epoch

这将为您提供模型训练的时期。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接