Even when using Sequential model, I am getting "AttributeError: 'Model' object has no attribute 'predict_classes' "
Even when using Sequential model, I am getting "AttributeError: 'Model' object has no attribute 'predict_classes' "
如 问题中所述,我们需要顺序模型才能使用 .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
...[=17=,您究竟期望它如何工作? ]
如 .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
...[=17=,您究竟期望它如何工作? ]