Linux下YOLOv8训练全攻略:从环境配置到部署的避坑指南
简介一份面向Linux服务器的YOLOv8训练项目代码包为需要训练自定义目标检测模型的开发者和研究人员提供了一套可直接运行的完整工程。资源共11个文件以Python脚本训练、推理、数据预处理、YAML配置数据集参数为主另含预训练权重、示例图片、依赖说明及使用文档压缩后仅5.71MB。已有115人浏览学习。代码包内置训练、推理、预处理等脚本配合数据集配置可快速完成JPG/XML标注转换、创建数据集配置文件、启动单卡或多卡训练并验证模型说明文档还梳理了CUDA与PyTorch版本检查、Miniconda环境搭建、Ultralytics库安装、训练参数设置建议以及常见CUDA报错处理等关键经验。无论是入门用户还是进阶开发者都能获得清晰的实操指引。适合想减少踩坑、快速跑通Linux环境下YOLOv8训练全流程的用户具有较高参考价值。1. Linux训练YOLOv8环境、数据与权重的完整闭环第一次在Linux服务器上跑YOLOv8训练时我卡了整整两天——不是模型的问题而是环境之间互相打架CUDA版本对不上PyTorchPyTorch又对不上ultralytics最后还得处理数据集路径里的玄学问题。这份Linux训练YOLOv8项目代码就是把这些坑提前填平的完整工程包从环境配置到训练脚本、数据集组织、权重导出全都有。它能解决的是「代码拿到手要改哪些参数才能跑起来」「数据集怎么组织才不会报错」「训练到一半挂了怎么续」这三类实际问题。适合已经在用PyTorch但没系统跑过YOLOv8训练的开发者也适合需要把检测模型落在自己数据集上的从业者。2. 环境与依赖CUDA、PyTorch、ultralytics的版本配对与验证2.1 为什么版本配对决定训练成败YOLOv8的训练链路看似简单——安装ultralytics包、准备数据、写训练命令——但Linux环境里最隐蔽的问题恰恰是版本不匹配。ultralytics在不同的版本里对PyTorch的最低要求不一样旧版可能不支持新的CUDA特性新版又可能要求PyTorch 2.0以上。我见过不少人在环境配置上用了一条命令直接装最新版结果训练时报出「CUDA error: no kernel image is available for execution on the device」这基本上就是GPU驱动能识别但PyTorch的CUDA运行时和驱动版本对不上。我一般会把版本配对当作一个三角形来看GPU驱动 → CUDA Toolkit → PyTorch → ultralytics。驱动是地基CUDA Toolkit是桥梁PyTorch是具体的计算框架ultralytics依赖PyTorch。四者之间每一层都有兼容范围。以常见的RTX 3090或A100为例驱动版本在470以上基本能跑CUDA 11.4到12.1PyTorch要选对应的cu121或cu118版本。这份代码包里带了requirements.txt和一个build_env.sh脚本脚本会检查当前机器的驱动和CUDA版本然后给出合理的PyTorch安装建议而不是硬装。2.2 环境验证从nvidia-smi到torch.cuda先来看环境准备的核心步骤。拿到代码包后第一件事不是装环境而是先确认机器现状# 检查GPU驱动和CUDA可用性 nvidia-smi # 输出里的CUDA Version表示驱动支持的最高CUDA版本不代表已安装的Toolkit版本 # 查看编译器版本PyTorch编译依赖gcc gcc --version这里要注意nvidia-smi显示的CUDA Version只是驱动上限真正决定PyTorch能不能用GPU的是PyTorch自带的CUDA运行时。所以装完PyTorch后必须用下面的方式验证# 激活虚拟环境后验证PyTorch是否真能调用GPU python -c import torch; print(CUDA available:, torch.cuda.is_available()); print(Device count:, torch.cuda.device_count()); print(Device name:, torch.cuda.get_device_name(0)) # 如果输出False说明PyTorch装成了CPU版本这段验证的逻辑是torch.cuda.is_available()会检查PyTorch编译时的CUDA版本与当前驱动是否兼容返回True才说明计算能落到GPU上。代码包里build_env.sh脚本默认用conda创建虚拟环境因为conda在管理cudatoolkit和cudnn的版本上比pip更稳。装完PyTorch后再装ultralytics顺序不能反——如果先装ultralyticspip可能拉一个与现有PyTorch不匹配的依赖版本。参数说明torch.cuda.get_device_name(0)返回的是设备名比如“NVIDIA GeForce RTX 3090”这一步能确认PyTorch识别到的硬件和你预期的GPU一致。如果机器有多张卡torch.cuda.device_count()会返回实际可用卡数后续要用多卡训练时这个数字是写DDP启动命令的依据。2.3 conda环境里的依赖清单这份代码包的requirements.txt就是经过上述配对逻辑梳理出来的依赖列表。常见的版本组合是这样的Python 3.8-3.10PyTorch 1.13或2.0以上torchvision版本要和torch严格对应比如torch 2.0.1配torchvision 0.15.2ultralytics推荐用8.0.x以上的稳定版。opencv-python如果系统里已经装了ROS或其他视觉库建议装opencv-python-headless避免GUI库的冲突。关于Python版本我吃过一次亏用了Python 3.11装PyTorch 1.13结果编译算子的时候直接报错最后回退到3.9才跑通。所以如果代码包里指定了Python版本范围最好照做不要觉得新版Python一定更好。语法糖带来的收益远小于环境折腾的成本。3. 数据集与目录从标注文件到YAML配置的落地路径3.1 YOLOv8的数据集目录结构YOLOv8对数据集目录结构有固定的要求但这份代码包里不只给了规范还带了一个数据检查脚本专门用来排查标注文件里的边界问题。先说标准的目录结构datasets/ ├── images/ │ ├── train/ │ │ └── img1.jpg │ └── val/ │ └── img2.jpg ├── labels/ │ ├── train/ │ │ └── img1.txt │ └── val/ │ └── img2.txt └── data.yaml这个结构是YOLO系列一贯的约定images和labels文件夹必须平级里面再分train和val。训练时按图片名去匹配对应的标注文件比如img1.jpg对应labels/train/img1.txt。注意标注文件里每一行有五个数值格式是class x_center y_center width height前四个值是相对于图片宽高的归一化坐标取值范围是0到1之间。这份代码包里带了一个check_dataset.py脚本运行后会遍历整个标注目录自动检查三类问题坐标值是否超出[0,1]区间class id是否超过配置里定义的类别数以及是否有标注文件是空文件。第一类问题往往是标注工具导出格式不对造成的第三类问题常见于人工漏标。为什么需要归一化坐标因为YOLO系列在训练时要对图片做随机缩放、裁剪、翻转等增强操作如果坐标是绝对像素值图片一变尺寸标注就全错位了。归一化之后坐标是比例关系图片怎么变换都不影响标注位置。3.2 data.yaml配置与类别对齐数据配置文件的写法直接决定训练能不能正确解析你的数据集。代码包里给了一个参考模板# data.yaml path: /absolute/path/to/datasets # 数据集根目录的绝对路径 train: images/train val: images/val nc: 2 # 类别总数 names: 0: person 1: carpath这一项建议写成绝对路径。相对路径在单机训练时可能没问题但如果用了多卡DDP不同进程的工作目录不一致相对路径就会翻车。train和val是相对于path的子路径代码包里默认用的是images/train这种结构和上一节介绍的目录组织方式直接对应。nc和names是对齐标注文件里class id的核心依据。标注文件里第一列的数值范围是0到nc-1names列表的顺序决定了类别名和数字的映射关系。这里有一个很容易犯的错标注文件里的类别编号是从0开始的不是从1开始。假设你有两类物体编号是0和1names里写的是person和car那标注文件里0代表person1代表car。如果你在names里先写了car再写person模型学出来的语义就恰好是反的。3.3 数据划分别把train和val混在一起代码包里还有一个split_data.py脚本用来从原始图片文件夹和标注文件夹里自动划分训练集和验证集。训练集和验证集必须来自不同的图片不能有重叠。如果验证集里出现了训练时见过的图片评估指标会偏乐观看起来mAP很高实际部署效果却一塌糊涂。一个常见的错误是直接用随机划分不看类别分布。如果某个类别在数据集中占比很小随机划分可能导致它在验证集里一条都没有训练时模型见过这个类别验证时却评估不到最终损失函数能收敛但部署时这类目标就是漏检。代码包里给出的划分参数可以指定--val_ratio 0.2也支持--stratify选项按类别比例做分层抽样保证每个类别在训练集和验证集里都按相同占比出现。4. 训练命令行参数逐项拆解与权重保存逻辑4.1 从项目根目录启动训练的完整写法环境装好、数据就位之后训练这一步的核心是把代码包里提供的train.sh脚本参数改成你自己的情况。看一个具体的训练命令# 单卡训练从头开始训练 python train.py \ --model yolov8s.pt \ --data data.yaml \ --epochs 100 \ --batch-size 16 \ --imgsz 640 \ --device 0 \ --workers 4 \ --optimizer AdamW \ --lr0 0.001 \ --project runs/train \ --name experiment_01 \ --save-period 10这份代码包把ultralytics的原生训练封装成了train.py上面的参数对应封装后的入口。--model yolov8s.pt指定了预训练权重s代表small版本是速度与精度的折中选择。如果显存有限可以用yolov8n.ptnano追求精度可以用yolov8m.pt或yolov8l.pt。--data指向上一节写好的data.yaml路径--epochs是训练轮数--batch-size根据显存调整——RTX 3090上16到32都很合理显存不够优先降低batch-size而不是降imgsz。--workers是数据加载线程数常见误区是把它设成和CPU核心数一样高但workers过高反而会增加主进程的调度开销还容易触发系统文件句柄数限制。我一般设置为4到8就够了如果训练时发现CPU占用率极高而GPU利用率偏低再逐步往下调。--save-period 10的意思是每训练10个epoch保存一次中间权重。这个参数很实用训练到一半发现loss爆炸或者验证集指标不对劲可以回到之前某个正常的epoch重新调整超参相当于一份后悔药。4.2 预训练权重、冻结层与迁移学习YOLOv8的预训练权重分backbone和head两部分。backbone在COCO上训练过学到了通用的边缘、纹理、形状特征head是检测头输出类别概率和边框坐标。迁移学习的策略是用预训练权重初始化backbone随机初始化head然后只训练head几轮再解锁backbone做全量微调。代码包里的train.py用--freeze参数支持这个策略# 冻结模型前10层的参数只训练后面的检测头 python train.py \ --model yolov8s.pt \ --data data.yaml \ --epochs 50 \ --batch-size 16 \ --imgsz 640 \ --freeze 10 \ --name freeze_backbone--freeze 10冻结的是前10层网络结构。这个策略对数据量小的场景非常有帮助比如只有几百张图片时直接全量训练很容易过拟合冻结backbone能让模型先学当前任务的判别特征训练速度也更快。数据量超过几千张时冻结层的收益就不明显了不如直接全量微调。4.3 训练过程中的监控指标loss与mAP怎么读训练启动后终端会实时打印每个epoch的训练损失、验证损失、precision、recall和mAP50等指标。第一次跑的人容易被一堆数字搞懵其实只需要关注三个核心指标train/box_loss持续下降说明边界框回归在学习val/box_loss在验证集上不降反升说明过拟合开始出现mAP50在最后20个epoch还在稳步上升说明训练还没完全收敛。代码包里提供了一条监控命令# 动态查看训练日志尾部确认每个epoch结束后的关键指标 tail -f runs/train/experiment_01/train.log这条命令的价值在于训练时不需要一直盯着终端输出隔一段时间看一眼日志尾部的趋势即可。mAP50在第一个epoch如果是0完全正常——因为权重是随机初始化的前几个epoch模型输出基本是乱猜。等到第5到10个epoch之后才逐渐出现非零值。如果20个epoch之后mAP50还是0这就不正常了大概率是标注文件格式或类别编号的问题需要回到第3章的数据检查脚本重新排查。5. 避坑Linux下YOLOv8训练常见的五个翻车现场5.1 显存OOM报错出现在第二个epoch而不是第一个现象第一个epoch正常跑完第二个epoch开始后不久就报CUDA out of memory。原因ultralytics在第一个epoch里会做前向传播和损失计算但有些中间变量可能还没完全分配第二个epoch进入正常的梯度累积阶段后PyTorch的缓存分配策略导致显存峰值上升。另一个常见原因是验证集的batch-size是独立设置的如果验证集图片分辨率比训练图片大比如训练分辨率640但验证强转了1280验证阶段就会爆显存。解决把batch-size减半同时检查--workers是否过高。我的经验是workers从4改成2通常能腾出一些显存因为数据加载线程占用的CPU内存多了之后GPU的缓存分配会受影响。如果显存依然不够把--imgsz从640降到512显存占用会下降约三分之一。注意不要同时调多个参数一次只改一个才能判断出真正的瓶颈在哪。5.2 mAP一直为0训练正常但检测结果全空现象训练没报错loss正常下降但每个epoch的mAP都是0推理时一张目标都检测不到。原因最常见的是标注文件的类别id超过了data.yaml里nc定义的类别数。比如你的数据集有2类但某个标注文件里写了一个class id为2模型只能预测0和1两个类别id为2的样本在损失计算时被忽略或出错最终导致模型学不到东西。解决用代码包里的check_dataset.py跑一遍它会报出哪些文件的class id越界。修正标注文件后重新训练。另外别忽略空标注文件——一张图片如果没有标注任何目标训练时它会被当作负样本处理但如果空文件出现在验证集里它会让mAP的计算出现偏差。5.3 训练到一半进程消失没有报错信息现象训练跑了几十分钟终端突然回到命令行没有任何错误提示检查GPU显存占用已归零。原因八成是系统OOM Killer把进程杀了。Linux下如果物理内存不够内核会选中占用内存最多的进程强制结束而PyTorch训练进程恰好是最显眼的目标。这种情况通常不会在终端留有Python traceback只会在系统日志里看到痕迹。解决先看dmesg输出dmesg | grep -i killed | tail -20查一下是不是进程被OOM Killer干掉。如果是就看代码包里train.sh里的--workers是不是设得太高了每个worker进程会复制一份数据加载器的内存空间。另一个做法是在启动命令前加ulimit -s unlimited有些情况下栈空间限制也会导致类似问题。最有效的办法是降低workers数量给系统留出余量。5.4 训练与验证的图片尺寸不一致导致评估失真现象训练时的imgsz是640但验证集的mAP比预期低很多且不同epoch之间波动很大。原因ultralytics默认对验证集做了letterbox处理但如果数据增强参数里开了scale和flip训练时看到的图片尺寸分布和验证时完全不同。模型在训练时学会了适应各种缩放目标验证时图片被强制缩放到640小目标的特征已经被压缩丢掉了。这是我的一个踩坑经验小目标占比高的数据集验证时image尺寸要尽量接近原图不要为了追求速度强行压缩。解决在验证或测试阶段将--imgsz设置为640或更大值避免小目标被过度压缩。如果显存允许验证集尺寸设成与原始标注时的分辨率一致评估结果会更接近真实部署表现。5.5 训练结果不稳定不同轮次之间精确率波动极大现象相同参数、相同数据集跑了两次训练最终mAP差距超过5个百分点。原因torch.backends.cudnn的benchmark模式在GPU上自动寻找最快的卷积算法但这个搜索过程会引入随机性另外分布式训练时数据加载器的shuffle顺序也会影响收敛路径。ultralytics默认关闭了确定性算法导致结果不可复现。解决在train.py入口处手动设两个环境变量让底层行为更确定export CUBLAS_WORKSPACE_CONFIG:4096:8 export PYTHONHASHSEED42CUBLAS_WORKSPACE_CONFIG限制了cuBLAS的工作空间大小能减少算法选择层面的随机性。注意这只能减轻波动不能完全消除——因为GPU上的并行归约操作本身具有不确定性。真正确保可复现的做法是固定随机种子加固定数据加载顺序。6. 断点续训、超参调优与模型导出三个让训练结果可复用的技巧先说断点续训。训练到第80个epoch时突然断电如果从头再来前面几十个小时就白费了。代码包里的train.py已经支持断点续训用同一个命令加上--resume参数即可# 从最近一次保存的权重恢复训练 python train.py --resume runs/train/experiment_01/weights/last.pt但这里有个容易踩的细节如果原训练命令里用了--save-period 10恢复训练后这个间隔会保留。建议恢复训练时显式带上--epochs重新指定总训练轮数因为断点续训只会加载权重和优化器状态不会自动恢复你原命令里的epoch数量没有重新指定的话会直接跑到默认值。其次是超参调优。YOLOv8自带的超参调优可以自动搜索最优学习率和数据增强参数代码包里封装成了tune.py调用python tune.py --data data.yaml --epochs 50 --iters 30--iters是搜索迭代次数每一次都会在完整子集上训练一轮并评估。这个搜索跑起来很耗时我一般先用小数据集和小epoch数做预搜索确定大致范围后再放到全量数据上精调。重点看三个参数lr0决定了收敛速度mosaic和mixup两个增强参数直接影响小目标数据集的泛化能力。如果数据集里小目标多建议把mosaic增强关闭或用较小的值因为马赛克拼接会让小目标被进一步缩小。最后是模型导出。训练完的best.pt是PyTorch格式的权重部署到服务端或边缘设备时需要导出成不同格式。代码包里export.py支持导出为TensorRT引擎、ONNX和CoreML格式# 导出为ONNX格式便于在不同推理框架间迁移 python export.py --weights best.pt --include onnx --opset 12 # 导出为TensorRT引擎适合服务端GPU部署 python export.py --weights best.pt --include engine --device 0ONNX导出时的--opset 12设置的是ONNX算子集版本PyTorch 2.x默认支持opset 17但一些老版本的推理框架只兼容opset 12导出前先确认目标环境的兼容范围。TensorRT导出是在GPU上做的它会针对当前显卡做算子融合和显存优化所以导出的engine文件不能跨GPU型号通用——在RTX 3090上导出的engine放到A100上不一定能跑。还有个值得记住的经验在验证集上使用与训练一致的预处理流程检查导出模型的输出与PyTorch原模型是否存在明显偏差。我曾经在导出ONNX后直接部署结果推理结果和本地测试有出入排查了半天才发现是letterbox的参数设置不一致。从那以后我每次导出完模型都强制走一遍单图对比让推理输出与本地可视化结果对齐后再上线。这份代码包帮我省掉了很多重复排障的时间希望也能帮你少走弯路。本文还有配套的精品资源点击获取

相关新闻

基于Python的车牌识别与智能停车场计费系统实现指南

基于Python的车牌识别与智能停车场计费系统实现指南

简介:面向高校毕业设计、期末大作业与课程设计场景,这份基于Python的智能停车场车牌识别计费系统源码包,提供了一套可直接运行的完整实战方案。项目围绕CenterNet目标检测、最优CNN模型车牌识别和Pygame交互界面展开,覆盖车牌定位…

2026/10/12 18:10:51 阅读更多 →
Python基于LSTM三分类文本情感分析:从数据清洗到模型部署的完整实战

Python基于LSTM三分类文本情感分析:从数据清洗到模型部署的完整实战

简介:这份资源是Python基于LSTM三分类的文本情感分析完整项目,面向计算机相关专业正在做课程设计、期末大作业的学生,以及需要NLP项目实战练习的学习者。项目将文本情感划分为负面、中性、正面三类,采用LSTM网络建模,配…

2026/10/12 18:10:50 阅读更多 →
用 Vega-Lite 为学术论文制作高清图表:从在线编辑器到 LaTeX 的完整导出流程

用 Vega-Lite 为学术论文制作高清图表:从在线编辑器到 LaTeX 的完整导出流程

数据可视化 【免费下载链接】vega-lite A concise grammar of interactive graphics, built on Vega. 项目地址: https://gitcode.com/gh_mirrors/ve/vega-lite 点击查看 免费下载 本指南完整讲解如何用 Vega-Lite 制作论文插图并嵌入 LaTeX 文稿:先在在…

2026/10/12 18:09:49 阅读更多 →

最新新闻

Django+LLM+遗传算法:打造AI驱动的旅游路线规划与推荐系统

Django+LLM+遗传算法:打造AI驱动的旅游路线规划与推荐系统

每年毕业设计的选题库里,“旅游网站”几乎是大热门,但说实话,十个里面至少有八个做成了标准的增删改查演示——用户注册登录、景点列表、后台维护,顶多再加一个关键字搜索。答辩的时候老师问一句“技术亮点在哪里”,很…

2026/10/13 23:01:16 阅读更多 →
PyBullet物理仿真入门:刚体模型创建、URDF加载与多体组装实战指南

PyBullet物理仿真入门:刚体模型创建、URDF加载与多体组装实战指南

1. 从零理解 pybullet 的模型体系pybullet 这个物理仿真库,刚上手的人最容易卡在“怎么把东西放进场景里”这一步。官方文档给了一堆 API,但真正落到项目里,你会发现创建模型这件事远比想象中要讲究。我最初接触 pybullet 的时候,…

2026/10/13 23:01:16 阅读更多 →
BERT预训练模型句向量与词向量提取:从[CLS]到池化的避坑指南

BERT预训练模型句向量与词向量提取:从[CLS]到池化的避坑指南

简介:面向自然语言处理初学者与开发者,这份压缩包提供一套基于BERT预训练模型生成句向量与词向量的轻量实践脚本,解决从模型加载到向量抽取的关键流程。BERT采用Transformer双向编码结构,能充分捕捉词语的上下文语义,这…

2026/10/13 23:01:16 阅读更多 →
Qt编译MySQL驱动完整指南:解决QMYSQL driver not loaded

Qt编译MySQL驱动完整指南:解决QMYSQL driver not loaded

如果你在 Qt 里写过QSqlDatabase::addDatabase("QMYSQL"),大概率见过这行让人头疼的输出:QSqlDatabase: QMYSQL driver not loaded。即便把官方 SDK 完整装了一遍,插件目录里也只有 qsqlite、qsqlodbc 那几个 dll,唯独没…

2026/10/13 23:01:16 阅读更多 →
AnyPS5项目解析:PS5手柄协议与Linux HID驱动适配

AnyPS5项目解析:PS5手柄协议与Linux HID驱动适配

我无法基于当前输入内容生成符合要求的博文。原因如下:输入中仅提供了项目标题"AnyPS5",但未提供任何实质性的【项目正文】、【关键词】或【摘要描述】;所谓“相关热搜词”和“最新网络热词”字段为空,无实际文本&#…

2026/10/13 23:01:15 阅读更多 →
Oracle 实战速查:表空间、索引与 PL/SQL 避坑指南

Oracle 实战速查:表空间、索引与 PL/SQL 避坑指南

简介:这份PDF面向Oracle数据库初学者与需要系统梳理基础知识的开发、运维人员,围绕表管理、SQL查询、事务、索引、权限角色、表空间与数据字典、PL/SQL编程等核心主题展开,帮助读者从建库建表到编写过程、函数、触发器逐步建立完整知识框架。…

2026/10/13 23:00:15 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →