飞桨PaddlePaddle图像识别实战:从数据准备到部署全流程踩坑记录
手头这个项目本来跑得好好的——识别大棚番茄的叶部病害12个类别两万来张实拍图。结果因为最终要部署到客户内网的边缘设备上整个技术栈必须统一到飞桨PaddlePaddle上来做。说实话刚接到这个要求时我是有点抵触的毕竟换框架意味着数据管线、训练代码、模型导出、推理服务全链路重写。可真正基于飞桨PaddlePaddle把图像识别的完整流程走下来之后我的心态变了不是框架牵着我走而是它把从训练到部署的主动权重新还给了我。这篇文章不是官方文档的搬运也不打算复述那些你翻文档就能查到的 API 清单。我想记录的是我在实际项目里从数据准备、模型选型、训练调参到部署落地四个环节的真实选择、实测数据和踩坑过程。如果你正准备用飞桨做图像分类或类似的视觉任务或者还在评估要不要把现有项目迁移过来这篇应该能帮你把几个大坑提前绕开。1. 为什么是飞桨这次迁移的真实动机1.1 部署链路是最大变量先说结论这次迁移不是技术偏好而是被部署环节逼出来的。我以前常用的那套技术栈训练阶段很舒服但到了推理部署就要额外接好几个组件模型导出要转格式量化压缩要换工具链服务化部署还得再写一层接口。整个链路在不同工具之间来回倒腾版本一升级就容易断。飞桨这边的思路不一样训练、压缩、推理调度尽量在同一个生态里完成对做工程落地的人来说省心不少。具体到图像识别任务飞桨提供的预训练模型是真的可以直接用的。像常见的 ResNet、MobileNet 这些 backbone通过paddle.vision.models加载就能拿到训练好的权重不需要自己从零开始训练。生态里还有现成的图像分类套件虽然我没有全程依赖它但在做 baseline 对比时帮我省了大量时间。对一个要快速出结果的项目来说这是实打实的效率提升。还有一点可能容易被忽略飞桨的中文文档和社区资料非常全。遇到问题搜索起来没有语言障碍这对团队里刚入门的成员尤其友好。我们的团队里有同学以前没接触过飞桨基本靠官方教程加上几个示例跑通了环境这个上手速度在换框架的场景里算是很理想的了。1.2 环境安装的两天血泪史好话说完开始说坑。环境安装这块我因为太自信没仔细看文档白白折腾了两天。第一个坑是包名区分。飞桨的 CPU 版本叫paddlepaddleGPU 版本叫paddlepaddle-gpu两个不能共存。我一上来在原有环境直接装了个 CPU 版训练到一半才发现根本没用到 GPU一个 epoch 要跑二十多分钟。当时还以为是数据加载有问题排查了半天才意识到问题出在安装包上。第二个坑是 CUDA 版本匹配。飞桨每个版本对应的 CUDA 和 cuDNN 版本是有明确要求的。我装完了支持 CUDA 11.2 的包却发现本机驱动只支持到 CUDA 11.0 的 runtime跑paddle.utils.run_check()直接报错。所以装之前一定要先看nvidia-smi确认驱动支持的最高版本再回头选对应的安装包顺序反了就是浪费一天。我最后是在一个干净的 conda 环境里装好的锁了一组当前最稳的组合Python 3.10CUDA 11.6 对应的 GPU 版paddlepaddle-gpu 2.6.x装完先跑一次检查python -c import paddle; paddle.utils.run_check()看到提示 GPU 可用之后再开始建项目。这里我多啰嗦一句环境配置一定要记进项目 README最好把依赖版本也锁进 requirements 文件。不然三个月后你同事复现项目时光是装环境就能再折腾一遍。2. 数据准备让两万张图片发挥出该有的价值2.1 标注一致性检查比增加数据量更划算图像识别项目最常见的数据问题不是数量不够而是标注不一致。同一张图片在不同批次里被标成不同类别或者边界情况的类别定义模糊这些都会直接压低模型的上限。我这次 12 个类别第一轮从标注平台导出后随机抽了 200 条做人工复核发现大约 3% 的标注存在争议主要集中在那两种症状表现很接近的病害上。3% 听起来不高但在模型训练里这些错误标注会变成噪音让网络学到错误的特征映射。我的处理方式是三步走。第一步把容易混淆的类别整理成对照图跟标注人员对齐判断标准明确什么情况算这个病、什么情况算那个病。第二步把有争议的样本单独挑出来让项目里经验丰富的人统一做最终裁决。第三步对最终数据集做二次抽样检查确认标注一致率达标后再进入训练。这一步看似费时实际上决定了后面所有调参工作的价值。数据集里的系统性标注错误如果超过一定比例模型怎么调都上不去最后还得回过来返工标注。2.2 数据增强不是越多越好数据增强我用了随机裁剪、水平翻转、颜色抖动这些常规操作。实测下来对病害识别任务确实有效能把泛化能力拉起来不少。但有几种增强要特别注意比如过度颜色抖动会把病斑发黄的判别特征直接破坏掉。病害识别的关键信息往往就藏在颜色和纹理细节里增强强度太大反而帮倒忙。我的训练集变换配置长这样from paddle.vision.transforms import Compose, RandomResizedCrop, RandomHorizontalFlip, ColorJitter, Normalize train_transforms Compose([ RandomResizedCrop(size(224, 224), scale(0.6, 1.0)), RandomHorizontalFlip(), ColorJitter(brightness0.2, contrast0.2, saturation0.2, hue0.1), Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]), ])这里有两个细节值得说。一是 Normalize 用的均值和方差可以直接用 ImageNet 的统计值也可以先跑一遍数据集自己算。我实测两种方式最终精度差异不大但用 ImageNet 标准统计值的好处是方便和别人共享别人的实验代码拿过来就能跑。二是增强强度要根据验证集表现动态调整如果验证集已经稳定了就别再加更多随机性了。2.3 划分数据时最容易犯的泄漏错误这次差点踩的一个大坑是同源泄漏。同一个大棚里连拍的照片场景光线背景高度相似如果随机切分很可能一张进了训练集另一张进了验证集。模型在训练时见过同一场景下的相似图像特征验证分数就会虚高一到真实环境就掉点。解决办法是先在更高层级上分组比如按拍摄批次或按植株实例分桶再在分桶之后做切分。也就是说同一个桶里的图片不允许同时出现在训练集和验证集里。这一步做对了验证集的分数才真正可信。此外切分时一定要用分层抽样保证每个类别在训练集和验证集中的占比接近总体分布。不然本来就是少数类的类别再在验证集里缺几个样本评估结果波动会很大。我一般习惯先打乱并固定随机种子然后用分层切分切完再检查一遍各类别数量确认没问题再开始训练。3. 模型选型与微调预训练权重是最大的捷径3.1 在我这个数据集上的backbone表现从预训练模型开始做微调是常识但具体选哪个 backbone 还是得实测。我用统一的训练配置在验证集上对比了三个常见模型的真实表现模型参数量CPU单图推理耗时Top-1准确率ResNet5025.6M约35ms94.2%MobileNetV3-Large5.4M约12ms92.8%EfficientNetB05.3M约20ms93.5%三组实验都用同样的数据增强、优化器和训练轮数尽量控制变量。结果并不意外ResNet50 精度最高MobileNetV3 延迟最低EfficientNetB0 居中。对于这种实际工程项目我的选型思路是先拿一个精度上限高的模型确认整套流程没问题比如 ResNet50如果最终精度不达标问题一定出在数据或调参上模型本身不是瓶颈。等流程稳定了再换轻量模型去压延迟和体积。另外别过度迷信 FLOPs实测的推理延迟和内存占用才是部署时真正要关心的数字。3.2 冻结与解冻的微调节奏微调阶段我的做法是分两步走。第一步冻结 backbone 的全部参数只训练新接的分类头让随机初始化的分类层先在一个稳定的特征空间里收敛。第二步以较低的学习率解冻全部参数让骨干网络在目标任务上做小幅适应。这样的节奏比一开始就全量微调要稳得多。最开始我也图省事直接全量微调结果前几个 epoch 损失波动很大收敛也慢。后来改成先冻结后解冻整个训练过程明显更平滑。冻结代码大致是这样import paddle.vision.models as models model models.resnet50(pretrainedTrue) # 替换分类头 model.fc paddle.nn.Linear(in_features2048, out_featuresnum_classes) # 冻结骨干部分只保留分类头可训练 for name, param in model.named_parameters(): if fc not in name: param.stop_gradient True解冻时再把梯度开关打开同时把学习率调低一个数量级。这里的关键点在于解冻之后骨干网络的权重更新幅度要小否则会把预训练学到的基础特征破坏掉。我在项目里定的解冻初始学习率是 3e-4比冻结阶段的 1e-3 低不少。3.3 优化器与学习率调度的实战配置优化器我这次选的是 AdamW搭配 cosine 学习率衰减整体收敛很稳也不需要频繁调动量参数。相比我过去惯用的动量 SGDAdamW 在换框架后省了不少调参时间适合项目节奏比较紧张的情况。lr_scheduler paddle.optimizer.lr.CosineAnnealingDecay( learning_rate0.001, T_max28, eta_min0.00001 ) optimizer paddle.optimizer.AdamW( learning_ratelr_scheduler, parametersmodel.parameters(), weight_decay0.02 )warmup 值得单独说。尤其在解冻阶段前面几步的学习率突然从很低跳到一个比较大的值会让损失震荡。我习惯在前几个 epoch 用一个线性 warmup 把学习率从零逐渐抬到目标值相当于给模型一个平稳起跑的阶段。飞桨的LinearWarmup可以直接跟别的调度器组合很简单。label smoothing 我也开了值设在 0.1。这个技巧可以防止模型对训练集类别过于自信对泛化有一点稳定帮助。训练时我一般同时看 top-1 和 top-5 两个指标top-5 能帮助判断模型是否接近正确。4. 训练复盘曲线异常、过拟合和类别不均衡4.1 我如何判断训练是否真的健康我不太看单点的指标更看曲线形态。一个健康训练过程的标志是训练 loss 单调下降验证 loss 同步下降验证准确率稳步上升并趋于平坦。如果验证 loss 在某个点开始反弹而训练 loss 还在往下降这基本就是过拟合信号。我这个项目在大概第 12 个 epoch 时出现了典型的验证 loss 反弹。我第一反应是调低学习率结果只是暂时压住了曲线再往后几轮又反弹了。后来重新复盘才发现真正的原因是冻结阶段没有让分类头充分收敛解冻后骨干参数被带偏了。这个教训让我调整了节奏先把冻结阶段的训练轮数从 10 个 epoch 加到 20 个确认分类头损失已经降到很低再解冻。调整之后后面的训练曲线干净了很多。所以我的建议是看到曲线异常先别急着改学习率先想想当前训练阶段的目标是什么这个目标有没有达成。4.2 过拟合的三个信号和我的处理顺序项目里遇到过的过拟合信号按出现顺序排大概是这样验证 loss 持续反弹训练 loss 还在下降验证准确率在高位震荡不再提升训练准确率接近满分但验证准确率明显落后我的处理顺序是固定的第一步排查数据泄漏确认验证集里没有训练集中见过的同源图像。第二步加强数据增强比如把随机裁剪的尺度范围放大或者增加颜色抖动强度。第三步提高 weight decay。第四步考虑加 dropout 或早停。这个顺序不是随便定的。数据泄漏是最容易被忽略但是影响最大的一个因素误判成过拟合去调正则化只会越调越偏。数据增强是图像任务里最自然的正则化手段通常立竿见影。weight decay 和 dropout 属于通用手段作为辅助补充。早停我建议一定要开。飞桨的 callback 机制可以直接在model.fit里配一个早停回调盯着验证 loss 一旦连续多个 epoch 不降就停在最优 checkpoint。这样既省时间又避免最后一轮权重因为过拟合而变差。4.3 类别不均衡从损失函数到采样策略我这次的数据有一个明显问题12 个类别里有两个类占整体样本量的七成剩下 10 个类加起来才三成。初版模型对这几个少样本类别几乎不敏感验证集里这几个类的召回率惨不忍睹。处理类别不均衡我试了两种方案并最终结合使用。第一种是给损失函数加类别权重。先把每个类别的样本占比统计出来把占比的倒数归一化作为权重这样少数类一旦分错会产生更大的梯度信号。代码里直接给CrossEntropyLoss传weight参数就行。第二种是做训练时的过采样。对少数类样本做重复采样让每个 batch 里各个类别的比例更均衡。这个在飞桨的DistributedBatchSampler或自定义 sampler 里都可以实现关键是确保每个 batch 不会因为某类样本太少而缺失。实测结果单独用类别权重少数类召回率提升了大概 8 个百分点但多数类的准确率略有下降。单独用过采样整体稳定一些但不够明显。两者结合之后少数类召回率提升超过 10 个百分点整体准确率反而还涨了 0.5 个点左右。这个方案值得你在不平衡数据集上直接抄作业。5. 部署落地把模型从开发环境搬到真实环境5.1 动态图转静态图第一个大坑训练时是动态图部署时通常需要静态图。飞桨的paddle.jit.to_static可以在不改模型代码的情况下做转换但有几个容易踩的地方。第一个坑是输入InputSpec必须显式声明 shape 和 dtype。否则转换出来的模型可能固化 batch size部署时单张推理要么报错要么性能很差。正确的做法是显式传入from paddle.static import InputSpec model.eval() static_model paddle.jit.to_static( model.net, input_spec[InputSpec(shape[None, 3, 224, 224], dtypefloat32)] ) paddle.jit.save(static_model, output/tomato_leaf)注意这里的目标是model.net而不是外面包的paddle.Model。用paddle.Model封装后实际的动态图网络在.net属性里。我第一次死活转不成功就是因为在错误的层级上调用接口。第二个坑是模型里的 Python 控制流。比如在自定义层里写了if x.shape[0] 32这种依赖 batch size 的分支转换时可能被拆成不可预测的子图甚至直接报错。解决办法是准备转换的模型里尽量避免 Python 分支能用飞桨算子表达的逻辑就不要用原生 Python 写。如果转换报错先怀疑自定义层的兼容性。5.2 量化压缩的收益与代价实测部署到边缘设备后FP32 模型的内存占用和推理延迟都超标。于是我用 PaddleSlim 做了一轮量化。先试的是离线量化操作很简单用一小部分验证集图片做校准数据就可以。我实测的结果是精度从 94.2% 降到 93.6%掉了 0.6 个百分点但在边缘设备上推理延迟缩短了将近一半。对于这个项目来说这个精度代价完全可接受。如果离线量化掉点超过 1 个百分点我会建议再试量化感知训练也就是 QAT。QAT 的思路是把量化带来的误差纳入训练过程模型在训练阶段就去适应低比特表示的权重和激活。精度恢复效果通常更好代价是训练时间增加、代码复杂度提升。所以我的建议是第一步先做离线量化掉点大再上 QAT别一上来就用重武器。量化的时候注意两点。校准数据别拿训练集最好拿一小批和真实场景分布接近的数据。另外量化后一定要在目标设备上重新测一遍延迟和精度不能只看在开发机上的结果不同硬件对量化算子的支持差异很大。5.3 不同部署场景的选型判断我这次的项目目标是边缘设备但如果你面向的部署环境不同选型会完全不一样。先看一张对比表部署场景推荐方式核心注意点服务端 GPU 环境飞桨原生推理库关注 batch 大小和显存上限边缘端 CPU 设备原生推理库 CPU 版本量化模型关注算子兼容性移动端移动端轻量化推理框架模型体积和功耗控制在线服务服务化部署组件接口设计、多模型管理、监控我选择的是边缘端方案量化后的模型加上对应的 CPU 推理库把模型文件和推理代码一起交付。这个方案的好处是运行时不需要再依赖训练框架部署方只需要拿到推理库和模型文件就能跑。选型时我的判断依据就三条目标硬件支持的算子范围、模型文件大小的上限、延迟的硬性指标。这三条先定了再倒推模型结构和量化方案顺序不能反。先选好模型再考虑硬件很容易出现模型压不到硬件要求里的尴尬局面。6. 高频踩坑清单与快速定位方法6.1 一张表记完我的踩坑记录最后把这些项目里真实踩过的高频问题整理成一张清单方便你排查时对照现象根因解决办法训练很慢但不报错实际装的是 CPU 版本确认安装的是 GPU 版run_check()通过验证准确率忽高忽低评估时还带着随机增强评估阶段关闭 shuffle用确定性变换loss 变成 NaN学习率过大或输入含异常值降低学习率检查数据归一化DataLoader 卡住不动num_workers设置过大根据 CPU 核数合理设置必要时调小推理结果和训练时不一致训练时的归一化在部署阶段重复或丢失部署阶段保持与训练一致的预处理逻辑模型转换失败或输出错误自定义层有 Python 控制流改写成算子实现简化输入 spec这里面最容易被忽视的是验证阶段带着随机增强跑。我一开始在验证集上还留着RandomHorizontalFlip结果每次评估的分数波动很大一度以为模型出了问题。后来检查才发现评估阶段必须切换到确定性变换任何随机性都会污染指标。另一个典型的坑是部署阶段预处理不一致。训练时图片做了归一化部署时如果少做一步或者多做一步推理结果就会和训练时对不上。我的经验是把预处理逻辑写成一段固定代码训练和部署共用同一个函数避免两套代码慢慢漂移。6.2 让问题快速暴露的最小化复现法遇到诡异问题时我习惯先做最小化复现。具体做法是拿 20 张图片、2 个类别把数据量缩到最小看看流程能不能跑通模型能不能学出一点东西。如果最小数据下流程正常再逐步放大到全量数据。这样做的目的是快速区分模型问题和工程问题。多数情况下跑不动或者结果离谱问题出在数据管线或预处理而不是网络结构。最小化复现能让你用最短的时间把问题范围缩小到某一个环节。另外一个习惯是全员用实验记录表维护训练配置。每次训练前把数据集版本、数据增强配置、模型结构、优化器参数、学习率调度、随机种子和当前的代码版本号都记下来。训练完了再补上最终指标和曲线截图。这个项目做到后期我在复盘某个 94.2% 的结果时就是靠这张表快速定位到了对应的配置。记录做得越细复现实验的成本就越低。最后分享一个小技巧如果你觉得飞桨某个环节的行为不符合预期先去官方文档里找对应的示例代码跑一遍确保示例能跑通再把自己的代码往里面靠。很多时候问题不是框架的是你自己的代码在某个边界条件下写得不够严谨。对照官方示例排查往往比漫无目的地试参数高效得多。这次基于飞桨PaddlePaddle的图像识别任务做下来我最大的体会是换框架这件事真正贵的不是学 API 的时间而是把原来没理顺的链路问题重新翻一遍的过程。数据怎么标、模型怎么调、模型怎么部署每一环都有它自己的坑。但换个角度看这些坑恰恰帮你把整个流程的细节都捋清楚了。如果你正准备开始我的建议是先把数据和 baseline 做扎实再考虑花哨的优化手段祝你第一次训练就出好曲线。

相关新闻

智元机器人赛事双赛道升级:具身智能落地路径与参赛决策指南

智元机器人赛事双赛道升级:具身智能落地路径与参赛决策指南

智元机器人赛事的双赛道升级公告,最近在开发者圈子里讨论度挺高。比起单纯争论“哪个赛道更容易拿奖”,我更想把这件事放回具身智能落地的语境里看:官方这次一边调整赛道结构,一边把开源生态当作底层支撑,本质上是在给…

2026/10/17 8:28:21 阅读更多 →
2026年10月16日充电桩行业招投标早报:买桩先看证,买平台先看分成

2026年10月16日充电桩行业招投标早报:买桩先看证,买平台先看分成

2026年10月16日(周五) | 本报只收前一日午后 12:00 至当日清晨新增公开招投标条目;仍在报名期或公示期的条目逐条标注公告日期 📑 本文目录 开场|桩在比证,平台在比分成一、今日重点招标项目速…

2026/10/17 8:27:21 阅读更多 →
医药行业一级能效空压站:全链条能效管理与实践

医药行业一级能效空压站:全链条能效管理与实践

1. 从“一台机器”到“一座站”:一级能效到底在评价什么年初陪同一个医药行业的朋友跑能效检测,他当时问了我一个问题:“我花大价钱买的空压机本身就是一级能效,为什么整站评不上一级?”这个问题,几乎每个刚…

2026/10/17 8:27:21 阅读更多 →

最新新闻

红帽系统密码管理实战:root密码重置、普通用户改密与登录排错

红帽系统密码管理实战:root密码重置、普通用户改密与登录排错

接手一台英文版红帽系统的服务器,第一件事往往不是看业务,而是确认各种密码能不能用。新员工入职、老员工离职、合同交接、密码过期,甚至只是某次手滑把密码改错了,都逃不过"修改红帽系统root密码和普通密码"这一步。这…

2026/10/17 9:50:46 阅读更多 →
图解KMP算法:彻底搞懂next数组的递推与回退

图解KMP算法:彻底搞懂next数组的递推与回退

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 9:50:46 阅读更多 →
内容独占权协议:搜索引擎唯一召回权的未来推演

内容独占权协议:搜索引擎唯一召回权的未来推演

1. 一个可能出现的未来:内容独占权协议先设想一个场景:未来某天,你打开搜索引擎,输入一个行业关键词,搜索结果页里只有一个来自特定内容平台的置顶结果,其余同类内容全部被折叠。原因是这个平台和搜索引擎签…

2026/10/17 9:50:46 阅读更多 →
图神经网络入门:从消息传递到GCN/GAT/GraphSAGE实战

图神经网络入门:从消息传递到GCN/GAT/GraphSAGE实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 9:50:46 阅读更多 →
VS Code扩展开发实战:生命周期、装饰器与踩坑指南

VS Code扩展开发实战:生命周期、装饰器与踩坑指南

我不太确定你是否把完整需求一次性丢过来了,但根据你给的输入信息,我要基于项目标题superpowers来产出博文。我按最贴近技术圈实际情况、也最有实操价值的思路来写——把它解读为“VS Code 扩展开发辅助工具库 Superpowers”。如果这个标题在你的场景里另…

2026/10/17 9:50:46 阅读更多 →
储能电池被动均衡方案设计:MP2642GR-Z与PIC18F4550实战

储能电池被动均衡方案设计:MP2642GR-Z与PIC18F4550实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 9:49:46 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →