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”对象没有属性“历史”的主要内容,如果未能解决你的问题,请参考以下文章
初学者 Python:AttributeError:'list' 对象没有属性
AttributeError: 'RDD' 对象没有属性 'show'