Нейронная сеть: что это значит, если мой batch_size влияет на точность?
Я продолжаю слышать, что batch_size не влияет на точность или качество обучения.
Но в моей простой модели использование batch_size в 20 000 (общий набор данных 2,5 миллиона) сразу дает мне потерю NaN и точность 0,004. Уменьшение bath_size до 2000 даст мне потерю 4,10 и точность 0,07, и точность будет увеличиваться соответственно с каждой эпохой, как и ожидалось.
Итак: означает ли тот факт, что мой batch_size влияет на точность, означает, что моя модель настроена неправильно?
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD
model = Sequential()
model.add(Dense(26, activation='relu', input_dim=X.shape[1]))
model.add(Dropout(0.1))
model.add(Dense(Y.shape[1], activation='softmax'))
sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
optimizer=sgd,
metrics=['accuracy',])
model.fit(X, Y,epochs=15,batch_size=2000)
score = model.evaluate(X, Y, batch_size=2000)
score
Epoch 1/15
44s - loss: 4.7164 - acc: 0.0781
Epoch 2/15
45s - loss: 4.3305 - acc: 0.0977
Epoch 3/15
45s - loss: 4.1886 - acc: 0.1065
Epoch 4/15
45s - loss: 4.1235 - acc: 0.1104
Epoch 5/15
45s - loss: 4.0881 - acc: 0.1122
Epoch 6/15
45s - loss: 4.0657 - acc: 0.1136
Epoch 7/15
45s - loss: 4.0506 - acc: 0.1148
Epoch 8/15
45s - loss: 4.0393 - acc: 0.1154
Epoch 9/15
47s - loss: 4.0305 - acc: 0.1159
Epoch 10/15
model.fit(X, Y,epochs=15,batch_size=200000)
score = model.evaluate(X, Y, batch_size=200000)
score
Epoch 1/15
42s - loss: NaN - acc: 0.0004