Keras训练卡在第一个epoch的解决方案

一般来说,我们可以使用Keras包中的fit函数进行模型的训练,其参数如下:

Model.fit(
    x=None,
    y=None,
    batch_size=None,
    epochs=1,
    verbose="auto",
    callbacks=None,
    validation_split=0.0,
    validation_data=None,
    shuffle=True,
    class_weight=None,
    sample_weight=None,
    initial_epoch=0,
    steps_per_epoch=None,
    validation_steps=None,
    validation_batch_size=None,
    validation_freq=1,
    max_queue_size=10,
    workers=1,
    use_multiprocessing=False,
)

其中xvalidation_data可以是事先加载好的数据组成的tuple——(inputs, targets),也可以是根据Keras相关API构建的Data Generator(包括ImageDataGeneratorkeras.utils.Sequence等),在训练的过程中,这些数据会按设定好的batch_size被喂给模型,从而完成trainevaluate

当我们在使用generator向模型中输入数据的时候,在部分高版本的Keras(>2.0.0)中可能会出现第一个epoch训练结束,但是evalute过程不结束,表现为第一个epoch卡住的情况。

根据相关资料和笔者自身经验,强烈建议在调用fit函数时,显式地指出step_per_epochvalidation_steps的值,从而解决epoch卡住无法结束的问题

参考链接

https://stackoverflow.com/questions/59027150/keras-training-freezes-during-fit-generator
https://keras.io/api/models/model_training_apis/#fit-method

posted @   Minerw  阅读(3821)  评论(0编辑  收藏  举报
编辑推荐:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示
主题色彩