[英]Training and validation loss is zero
我正在嘗試訓練一個用於文本分類的網絡,其中文本標記有 6 個不同的類別。 每個文本只能有一個 label。 到目前為止,我構建了以下簡單網絡:
## Network architecture
model = Sequential()
model.add(Embedding(20000, 100, input_length=50))
model.add(LSTM(100, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
## Fit the model
history = model.fit(data, np.array(labels), validation_split=0.2, batch_size = 32, epochs=25)
當我訓練網絡時,訓練和驗證損失一直保持在'0.0000e + 00。
Epoch 1/25
26/26 [==============================] - 8s 225ms/step - loss: 0.0000e+00 - accuracy: 0.2847 - val_loss: 0.0000e+00 - val_accuracy: 0.3188
Epoch 2/25
26/26 [==============================] - 6s 213ms/step - loss: 0.0000e+00 - accuracy: 0.2887 - val_loss: 0.0000e+00 - val_accuracy: 0.2754
Epoch 3/25
26/26 [==============================] - 6s 230ms/step - loss: 0.0000e+00 - accuracy: 0.2350 - val_loss: 0.0000e+00 - val_accuracy: 0.2705
Epoch 4/25
26/26 [==============================] - 6s 217ms/step - loss: 0.0000e+00 - accuracy: 0.2180 - val_loss: 0.0000e+00 - val_accuracy: 0.2657
Epoch 5/25
26/26 [==============================] - 6s 220ms/step - loss: 0.0000e+00 - accuracy: 0.2262 - val_loss: 0.0000e+00 - val_accuracy: 0.2609
Epoch 6/25
26/26 [==============================] - 6s 224ms/step - loss: 0.0000e+00 - accuracy: 0.2542 - val_loss: 0.0000e+00 - val_accuracy: 0.2609
Epoch 7/25
26/26 [==============================] - 6s 223ms/step - loss: 0.0000e+00 - accuracy: 0.2379 - val_loss: 0.0000e+00 - val_accuracy: 0.2512
.
.
.
有人知道是什么原因造成的嗎?
在你的最后一層
model.add(Dense(1, activation='sigmoid'))
您必須將第一個 arg (單位)設置為類別數(即它應該是6
而不是1
)和softmax
而不是sigmoid
model.add(Dense(6, activation='softmax'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.