I'm currently learning neuronal networks and trying to understand Tensorflow. I've got a code, where I'm asked about the batch size, but I have no clue.
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)
I read the documentation and it should be given in the model.fit() method. Default batch size is 32 if I'm right. Is this true for this code?
Thanks in advance
That's correct. That'd work. But if you want to change it, you can simply pass it to fit(batch_size=64)
and see the result.
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, batch_size=64)
The number of training samples are simply calculated by, the number of batch size per epoch times by the batch size: i.e., 32 * 1875 = 60,000
. or 256 * 235 = 60,160
. The 60K is the total number of training samples. In fact, the ~60K is known and 235 and 1875 are calculated by ~60K / batch size
.