我对这个模型的批量大小感到困惑。我使用 sgd 即随机梯度下降作为优化器(参见代码)。我知道在 sgd 中,训练集中的单个随机实例用于计算每一步的梯度。因此,根据它,batch_size 应该等于 1。现在,在tf.keras.Sequential.fit()文档中它说:
如果未指定,batch_size 将默认为 32。
那么,我是否必须手动将 batch_size 设置为 1?这是因为默认值 32 将使其成为 Mini-batch Gradient Descent。
import tensorflow as tf
from tensorflow import keras
fashion_mnist = keras.datasets.fashion_mnist
(X_train_full, y_train_full), (X_test, y_test) = fashion_mnist.load_data()
X_valid, X_train = X_train_full[:5000]/255.0, X_train_full[5000:]/255.0
y_valid, y_train = y_train_full[:5000], y_train_full[5000:]
model = keras.models.Sequential()
model.add(keras.layers.InputLayer(input_shape = [28, 28]))
model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(300, activation = "relu"))
model.add(keras.layers.Dense(100, activation = "relu"))
model.add(keras.layers.Dense(10, activation = "softmax"))
model.compile(loss = "sparse_categorical_crossentropy", optimizer = "sgd", metrics = ["accuracy"])
history = model.fit(X_train, y_train, epochs = 30, validation_data = (X_valid, y_valid))