AttributeError:“numpy.ndarray”对象没有属性“历史”

Posted

技术标签:

【中文标题】AttributeError:“numpy.ndarray”对象没有属性“历史”【英文标题】:AttributeError: 'numpy.ndarray' object has no attribute 'history' 【发布时间】:2019-12-04 09:37:13 【问题描述】:

我正在尝试在 keras 中绘制训练图,但运行代码时出现错误。

def modelx(X, y):
    classifier = Sequential()
    classifier.add(Dense(4, activation='relu', kernel_initializer='random_normal', input_dim=10))
    classifier.add(Dense(4, activation='relu', kernel_initializer='random_normal'))
    classifier.add(Dense(1, activation='sigmoid', kernel_initializer='random_normal'))
    classifier.compile(optimizer='adam', loss='binary_crossentropy', metrics =['accuracy'])
    out = classifier.fit(X, y, batch_size=10, epochs=1000, verbose=0)
    return out, classifier

..............
..............
..............

predictions, model = modelx(X, y)
predictions = model.predict(test)
predictions = (predictions>0.5)
predictions = predictions.astype(int)
print(predictions)
results = ids.assign(Survived=predictions)
results.to_csv("/home/navaneeth/work/kaggle/titanic/gender_submission.csv", index=False)
scores = model.evaluate(test, predictions, verbose=0)
print(scores)
print(predictions.history.keys())
plt.plot(predictions.history['acc'])
plt.plot(predictions.history['val_acc'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()

错误似乎

打印(predictions.history.keys()) AttributeError: 'numpy.ndarray' 对象没有属性 'history'

【问题讨论】:

查看this了解如何使用.history() 【参考方案1】:

您不应将历史记录用于预测,而应仅在您之前训练的模型上使用。 所以我认为 model.history.keys() 正是你需要做的。

您可以在此处找到更多信息:

Keras callbacks

【讨论】:

【参考方案2】:

这个问题很老,但其他人可能会觉得它很有用。您只能提取训练模型的历史详细信息,而不是用于预测。我不确定在解析出 model(X,y) 函数后是否仍能检索数据。这里有两种管理方式:

    将绘图函数添加到model(X, y) 过程中;

    使用np.save 保存历史详细信息并稍后加载以显示它。

【讨论】:

以上是关于AttributeError:“numpy.ndarray”对象没有属性“历史”的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:“模块”对象没有属性“作者”

初学者 Python:AttributeError:'list' 对象没有属性

AttributeError:“字节”对象没有属性“告诉”

AttributeError: 'RDD' 对象没有属性 'show'

AttributeError:“NumpyArrayIterator”对象没有属性“类”

AttributeError:模块 'dbus' 没有属性 'lowlevel'