【发布时间】:2018-03-08 16:29:54
【问题描述】:
我有这段代码适用于二进制分类。我已经针对 keras imdb 数据集对其进行了测试。
model = Sequential()
model.add(Embedding(5000, 32, input_length=500))
model.add(LSTM(100, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model.summary())
model.fit(X_train, y_train, epochs=3, batch_size=64)
# Final evaluation of the model
scores = model.evaluate(X_test, y_test, verbose=0)
我需要将上面的代码转换为多类分类,总共有 7 个类别。在阅读了几篇文章以转换上述代码后我所理解的我必须更改
model.add(Dense(7, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
显然只在两行以上进行更改是行不通的。为了使代码适用于多类分类,我还需要进行哪些更改。另外我认为我必须将类更改为一种热编码,但不知道如何在 keras 中使用。
【问题讨论】:
标签: python deep-learning keras