微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

即使在使用顺序模型时,我也会收到“AttributeError: 'Model' object has no attribute 'predict_classes'”

如何解决即使在使用顺序模型时,我也会收到“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_indexembeddings_indexnclasses...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。