如何解决即使在使用顺序模型时,我也会收到“AttributeError: 'Model' object has no attribute 'predict_classes'”
正如 this 问题中提到的,我们需要顺序模型来使用 .predict_classes
我正在使用这个模型但仍然得到
AttributeError: 'function' object has no attribute 'predict_classes'
def Build_Model_RNN_Text(word_index,embeddings_index,nclasses,MAX_SEQUENCE_LENGTH=500,EMbedDING_DIM=50,dropout=0.5):
model = Sequential()
hidden_layer = 3
gru_node = 32
embedding_matrix = np.random.random((len(word_index) + 1,EMbedDING_DIM))
for word,i in word_index.items():
embedding_vector = embeddings_index.get(word)
if embedding_vector is not None:
# words not found in embedding index will be all-zeros.
if len(embedding_matrix[i]) != len(embedding_vector):
print("Could not broadcast input array from shape",str(len(embedding_matrix[i])),"into shape",str(len(embedding_vector))," Please make sure your"
" EMbedDING_DIM is equal to embedding_vector file,glove,")
exit(1)
embedding_matrix[i] = embedding_vector
model.add(Embedding(len(word_index) + 1,EMbedDING_DIM,weights=[embedding_matrix],input_length=MAX_SEQUENCE_LENGTH,trainable=True))
print(gru_node)
for i in range(0,hidden_layer):
model.add(GRU(gru_node,return_sequences=True,recurrent_dropout=0.2))
model.add(Dropout(dropout))
model.add(GRU(gru_node,recurrent_dropout=0.2))
model.add(Dropout(dropout))
model.add(Dense(256,activation='relu'))
model.add(Dense(nclasses,activation='softmax'))
model.compile(loss='sparse_categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
return model
即使使用 .predict
,而不是 .predict_classes
get 我也遇到同样的错误
predicted = Build_Model_RNN_Text.predict_classes(X_test_glove)
解决方法
错误是由于您没有调用函数来获取其输出。简单做
predicted = Build_Model_RNN_Text(<<args>>).predict_classes(X_test_Glove)
您需要将 <<args>>
替换为函数所需的参数。似乎您原本打算将 Build_Model_RNN_Text
改为 class
?
无论哪种方式,由于您没有提供所需的参数 word_index
、embeddings_index
和 nclasses
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。