我使用一些簡單的模型:如何解決神經網絡的準確性成爲不變的問題?
model = Sequential()
model.add(Dense(12, input_dim=len(allKeys), activation='tanh', kernel_initializer='uniform'))
model.add(Dense(31, activation='tanh'))
model.add(Dense(N, activation='relu'))
model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])
model.fit(X, Y, epochs=500, batch_size=40)
X.shape(31,147) Y.shape(31,13)
在X的值是0或一些下低於1.0 。 Y是稀疏陣列,一列中的一列是1,其餘列是0.
acc始終低於0.25。大部分時間只是0.12。如果我添加丟失圖層,我會發現acc值會發生變化,但不會超過0.25,大多數時候只會給出更糟糕的結果。
Epoch 290/500 31/31 [==============================] - 0s - loss:9.6283 - acc:0.1290 Epoch 291/500 31/31 [==============================] - 0s - loss: 9.6283 - acc:0.1290 Epoch 292/500 31/31 [==============================] - 0s - loss :9.6283 - acc:0.1290
----------------------------更新後的代碼---------- --------------------
model = Sequential()
model.add(Dense(12, input_dim=len(allKeys), activation='tanh', kernel_initializer='uniform'))
model.add(Dense(31, activation='tanh'))
model.add(Dropout(0.2))
model.add(Dense(N, activation='softmax'))
sgd = SGD(lr=0.001, momentum=0.3, decay=0.0, nesterov=False)
model.compile(optimizer=sgd,loss='categorical_crossentropy',metrics=['accuracy'])
one_hot_labels = to_categorical(Y, num_classes=N)
model.fit(X, one_hot_labels, epochs=100, batch_size=40)
此網絡是否進行迴歸或分類?在分類的情況下有多少班? –
如果你有8個類,其準確性理論上爲零,因爲它可能每次都觸發同一個類,嘗試繪製張量板中的激活直方圖和分佈。什麼是輸入?這個架構可能太難了。 –
更新了代碼,1.使用步驟0.001。 2.嘗試/不輟學。 3.將最後一步從relu改爲softmax。 4.用於to_category。仍然有同樣的結果; – BlueDolphin