Keras 不对所有行建模

Keras Not Modeling All Rows

B运行d Keras、Tensorflow 和 Google Colab 的新手。我正在关注 YouTube 教程。我有一个包含 4000 行的 df,如下所示:

           x            y      color
0       1.752690    2.846610    0.0
1       0.848488    2.127556    0.0
2       2.294166    0.801233    1.0
3       4.137304    3.082904    1.0
4       2.877251    1.915737    1.0
...     ...         ...         ...
3995    4.138087    5.111319    0.0
3996    0.840928    1.691174    0.0
3997    2.820071    3.812626    0.0
3998    3.313544    4.869823    0.0
3999    3.877675    2.553817    1.0

这是我的代码:

import tensorflow as tf
from tensorflow import keras
import pandas as pd
import numpy as np

df=pd.read_csv('train.csv')
np.random.shuffle(df.values)

model = keras.Sequential([
  keras.layers.Dense(4, input_shape=(2,), activation='relu'),
  keras.layers.Dense(2, activation='sigmoid')])
model.compile(optimizer='adam',loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy'])
model.fit(df.loc[:,'x':'y'].values, df.color.values, batch_size=16)

这是输出:

250/250 [==============================] - 0s 872us/step - loss: 0.8335 - accuracy: 0.2380
<tensorflow.python.keras.callbacks.History at 0x7fed96a646a0>

我担心输出暗示它只有 运行 250 行。 youtube 视频中显示的输出有几行,底行显示 4000/4000,然后在下方显示 [Finished in 4.5s]。您可以转到 https://www.youtube.com/watch?v=aBIGJeHRZLQ 中的 29:13 查看输出。

我的模型只有 运行 250 行吗?为什么?

250 是训练的批次数 250 * 16 = 4000

显示的数据不是行。它是处理的批次数。在 model.fit 中,您确实将批量大小指定为 16。因此,对于 4000 行,4000/16=250 这是一个时期内处理批量大小为 16[=10 的所有 4000 行所需的步骤数=]