【问题标题】:AttributeError: 'Model' object has no attribute 'epoch' - KerasAttributeError:“模型”对象没有属性“时代”-Keras
【发布时间】:2019-05-21 14:50:00
【问题描述】:

我按照基于全连接层的简单自动编码器中给出的步骤在 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

我尝试的第二件事是结果:没有找到带有标签的句柄放在图例中。但是会生成情节。我该如何解决这个问题

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()

【问题讨论】:

    标签: python tensorflow matplotlib keras attributeerror


    【解决方案1】:

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

    epochs = range(100)
    

    【讨论】:

      【解决方案2】:

      您实际上可以从历史对象中找到时代。

      epochs = wiki_autoencoder.history.epoch
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-21
        • 2018-12-29
        • 1970-01-01
        • 1970-01-01
        • 2021-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多