论深度学习训练过程中数据集打乱的重要性

浅浅记录一下今天遇到的一个很有意思的问题:

今天在重新训练一个之前跑过的模型时候,突然发现训练损失一直居高不下,一直保持在0.6左右,就感觉很奇怪,为什么之前训练的时候没有问题,之前训练的时候loss是正常下降的,为什么今天重新把代码拉出来跑的时候,就出现loss不下降的问题呢?带着这个问题,我就狠狠调试,发现代码逻辑啥的都没有问题,为此调试了一整天,然后刚刚坐在实验室的时候,突然想着要不把中间结果输出看看,然后我就单独挑了几例数据训练一下,结果一看,发现我的每一个epoch加载的数据顺序是一样的,也就是说,我的DataLoader中的shuffle这个参数是False,按理来说,shuffle设置为False,也就是数据集的加载顺序不变,这应该不会影响模型的训练,确实,对于自然图像来说,由于训练集中的每张图像都是独立,所以即使数据集的加载顺序不变,也不影响模型的训练,但是,由于我研究的领域是医学图像,主要是脑肿瘤的MRI图像,一般MRI图像都是3D数据,我会把这个3D数据中沿着轴向面提取slice,这样一来,数据集之间是有内在关联的,即前后两张图片是极为相似的,所以如果此时再将shuffle设置为False的话,就会严重影响模型的训练,在我将shuffle改为True后,我的模型有可以正常训练了!

目前以上说法只是我对于这个问题的一个猜想,不确定是否正确,但是实验观察的现象确实是将shuffle改为True以后,模型就可以正常训练了。

相关推荐
火山引擎开发者社区3 小时前
技术速递|使用 GitHub Copilot CLI 构建 Emoji 列表生成器
人工智能
codefan※3 小时前
干掉“幻觉“实战:如何构建企业级知识图谱增强 RAG
人工智能·知识图谱
wukangjupingbb3 小时前
传统基于药物 SMILES 序列和蛋白质氨基酸序列的 DTI(Drug-Target Interaction)预测方法的缺陷
人工智能
沪漂阿龙4 小时前
Codex 额度重置周期变化:AI 编程免费试玩时代正在结束
人工智能
TickDB4 小时前
美股行情 API 接入避坑:REST 快照、WebSocket 推送、盘前盘后数据的边界
人工智能·python·websocket·行情数据 api
装不满的克莱因瓶4 小时前
深入理解卷积神经网络(CNN)——从原理到代码实践
人工智能·神经网络·cnn
完成大叔4 小时前
模块二,Agent知识图谱的工具链思考
人工智能
lauo4 小时前
ibbot手机发布:搭载poplang技术 + token节点经济,革新AI手机体验
人工智能·智能手机
咖啡星人k4 小时前
云端开发环境技术架构深度解析:从容器隔离到AI Agent集成
人工智能·架构
袋鼠云数栈4 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能