【发布时间】:2021-03-13 10:41:48
【问题描述】:
我已经训练了一个基于双向 LSTM 和密集层输出的深度学习模型。使用model.predict(x) 获得的输出概率与我的实际标签(一个热编码标签)匹配是非常令人困惑的。此外,model.predict_classes(x) 输出 (0,1,2) 也令人困惑。我如何将这些输出与我的原始标签联系起来。下面是我的代码 sn-p 供参考:
model = Sequential()
model.add(Embedding(MAX_NB_WORDS, EMBEDDING_DIM, input_length=X.shape[1]))
model.add(SpatialDropout1D(0.5))
model.add(Bidirectional(tf.keras.layers.LSTM(250, return_sequences=True,activation='tanh')))
model.add(Bidirectional(tf.keras.layers.LSTM(250)))
model.add(Dropout(0.5))
model.add(Dense(3, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
#model.compile(loss='binary_crossentropy', optimizer=Adam(), metrics=['accuracy'])
print(model.summary())
history = model.fit(X_train, Y_train, validation_data=(X_test, Y_test), batch_size=32, epochs=10)
model.predict_classes(test_doc)
model.predict(test_doc)
如果有人请帮助识别此序列模型中带有实际标签的输出。
【问题讨论】:
-
如果没有看到您对标签所做的任何处理,很难判断
-
@NicolasGervais 我已经使用
Y = pd.get_dummies(df['Sentiment']).values在单热编码中转换了我的标签,即 0,1,2
标签: python tensorflow deep-learning predict one-hot-encoding