TensorFlow 中如何使用 model.fit_generator?

推荐答案

在 TensorFlow 中,model.fit_generator 已经被弃用,推荐使用 model.fit 方法,因为它现在支持数据生成器(generator)作为输入。以下是使用 model.fit 方法的示例代码:

-- -------------------- ---- -------
---- ----------------------- ------ ----------
---- ----------------------- ------ -----
---- ---------------------- ------ --------
------ ----- -- --

- --------
----- ------------------------
    --- -------------- ------ ------ ------------
        ------- ------ - ------ -----
        --------------- - ----------

    --- --------------
        ------ ----------------------- - -----------------

    --- ----------------- -----
        ------- - ---------- - -------------------- - -- - ----------------
        ------- - ---------- - -------------------- - -- - ----------------
        ------ ------------------ -----------------

- ----
----- - ------------
------------------- ------------------ ---------------
------------------ ----------------------

- ----
------------------------------- --------------------------- ---------------------

- -------
------- - ----------------------- -----
------- - -------------------- ----------- ---
---------- - --
--------------- - ---------------------- -------- -----------

- -- --------- ----
-------------------------- ----------

本题详细解读

1. model.fit_generator 的弃用

在 TensorFlow 2.x 中,model.fit_generator 已经被弃用,取而代之的是 model.fit 方法。model.fit 现在可以直接接受数据生成器作为输入,因此不再需要 fit_generator

2. 数据生成器

数据生成器是一个 Python 类,通常继承自 tf.keras.utils.Sequence。它需要实现以下方法:

  • __len__: 返回生成器的长度,即每个 epoch 中的批次数。
  • __getitem__: 返回一个批次的输入数据和标签。

3. 使用 model.fit 训练模型

在创建并编译模型后,可以直接将数据生成器传递给 model.fit 方法。model.fit 会自动处理数据生成器的批次数据,并在每个 epoch 中调用生成器的 __getitem__ 方法来获取数据。

4. 示例代码

示例代码展示了如何创建一个简单的数据生成器,并使用 model.fit 方法训练模型。数据生成器 DataGenerator 类负责生成批次数据,model.fit 方法则负责模型的训练过程。

通过这种方式,你可以轻松地处理大规模数据集,而不需要将所有数据一次性加载到内存中。

纠错
反馈