AttributeError:“历史记录”对象没有属性“评估”

from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from keras.layers import Dropout
import numpy as np

frames=[singleteamone_tweets,singleteamtwo_tweets,twoteam_tweets]
All_data = pd.concat(frames)

#creating a bag of words model
from sklearn.feature_extraction.text import CountVectorizer
cv= CountVectorizer()
X=cv.fit_transform(All_data.iloc[:,0]).toarray()  #.iloc[:,0]
Y=All_data.iloc[:,1].values


#training and test dataset

from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.25,random_state=0)

#Reshape 
#X_train = np.random.rand(3,4)
X_train = np.reshape(X_train,(X_train.shape[0],X_train.shape[1],1))





classifier=Sequential()
#LSTM layers and Dropout regularization
classifier.add(LSTM(units=30,return_sequences=True,input_shape=(X_train.shape[1],1)))
classifier.add(Dropout(0.2))

classifier.add(LSTM(units=30,return_sequences=True))
classifier.add(Dropout(0.2))

classifier.add(LSTM(units=30,return_sequences=True))
classifier.add(Dropout(0.2))

classifier.add(LSTM(units=30))
classifier.add(Dropout(0.2))

#output layer
classifier.add(Dense(units=1,init='uniform',activation='sigmoid'))

我在检查其显示属性错误的准确性时遇到错误:-历史记录对象没有属性“评估”。我试图修复它无法正常工作。AttributeError:“历史记录”对象没有属性“评估”

#编译RNN classifier.compile(optimizer ='adam',loss ='binary_crossentropy',metrics = ['accuracy'])

model=classifier.fit(X_train,epochs=30,batch_size=15)



# Final evaluation of the model

test_loss,test_acc = model.evaluate(X_test)
iCMS 回答:AttributeError:“历史记录”对象没有属性“评估”

您应该改做这样的事情-

history = model.fit(...)

根据Keras文档,model.fit方法返回一个History回调,该回调具有一个history属性,其中包含连续损失列表和其他度量。

history没有名为“ evaluate”的属性,而应该这样做以获得验证的准确性。 evaluatemodel对象的属性。

history.history['accuracy']

这将返回您一个划时代的训练准确性列表。

要找到最终的测试准确性,您应该使用evaluate对象上的model属性-

您还需要在给定y_test的同时尝试计算 准确性。

model.evaluate(X_test,y_test)

# This could also be a generator instead
# model.evaluate(test_generator)

上面的代码

引自evaluate() method documentation

返回

标量测试损失(如果模型只有一个输出却没有指标)或 标量列表(如果模型具有多个输出和/或度量)。 属性model.metrics_names将为您提供显示标签 标量输出。

因此,您可以使用模型的metrics_names属性来找出每个值对应的含义。例如,如果您编写:

print(model.metrics_names)

这为您提供了所有指标的名称。由于如果使用-

编译模型,则需要accuracy
metrics=["accuracy"]

您还将在model.evaluate()输出中获得准确性。

本文链接:https://www.f2er.com/2069217.html

大家都在问