以以下示例为例:
import tensorflow as tf
data = tf.keras.datasets.mnist
(training_images, training_labels), (val_images, val_labels) = data.load_data()
training_images = training_images / 255.0
val_images = val_images / 255.0
model = tf.keras.models.Sequential([tf.keras.layers.Flatten(input_shape=(28,28)),
tf.keras.layers.Dense(20, activation=tf.nn.relu),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(training_images, training_labels, epochs=20, validation_data=(val_images, val_labels))
结果是这样的:
Epoch 1/20
1875/1875 [==============================] - 4s 2ms/step - loss: 0.4104 - accuracy: 0.8838 -
val_loss: 0.2347 - val_accuracy: 0.9304
1875是从哪里来的?这个数字代表什么?我看不清它是从哪里来的。training_images的形状是60000x28x28。
1875
是完成批量大小为32的整个数据集所需的训练迭代次数。
1875*32=60k
Epoch一个Epoch描述算法看到整个数据集。因此,每次算法在数据集,一个纪元已经完成。
迭代迭代描述一批数据的次数通过了算法。在神经网络的情况下意思是向前传球和向后传球。所以,每次你传球一批数据通过NN,你就完成了一次迭代。
有关更多信息,您可以参考链接-1和链接-2
1875是训练的步骤/批次的数量。例如,默认的批次大小为32,这告诉我们您有60000个图像(加上或减去31,因为最后一个批次可能是满的,也可能不是满的(。