推荐答案
在 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
方法则负责模型的训练过程。
通过这种方式,你可以轻松地处理大规模数据集,而不需要将所有数据一次性加载到内存中。