【问题标题】:What do these numbers mean when training in Tensor Flow在 Tensorflow 中训练时,这些数字意味着什么
【发布时间】:2021-09-29 07:35:18
【问题描述】:

举个例子:

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。

【问题讨论】:

  • 这是批次的数量,一旦完成将是一个纪元。 1 epoch = 1875 个批次

标签: tensorflow


【解决方案1】:

1875 是训练完成整个数据集所需的迭代次数,批量大小为 32。

1875 * 32 = 60k

Epoch 一个 epoch 描述了算法看到 整个数据集。所以,每次算法看到所有样本 数据集,一个纪元已经完成。

迭代 迭代描述了一批数据的次数 通过算法。在神经网络的情况下, 指前传和后传。所以,每次你经过 通过NN的一批数据,你完成了一次迭代。

更多内容可以参考link-1link-2

【讨论】:

    【解决方案2】:

    1875 是训练的步数/批次数。例如,默认批量大小为 32,这告诉我们您有 60 000 张图像(正负 31,因为最后一批可能已满,也可能未满)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 2014-08-25
      • 1970-01-01
      • 2011-01-17
      • 2015-09-13
      • 1970-01-01
      相关资源
      最近更新 更多