YOLO-NAS 自定义目标检测训练实战:SuperGradients 训练与测试

发布时间:2026/7/15 0:31:10
YOLO-NAS 自定义目标检测训练实战:SuperGradients 训练与测试 YOLO-NAS 自定义目标检测训练实战SuperGradients 训练与测试这篇教程根据我复现 YOLO-NAS 自定义目标检测训练流程时整理重点演示如何安装 SuperGradients、加载预训练模型、训练自定义数据集并做测试集评估。YOLO-NAS 的训练方式和 Ultralytics 不同依赖 SuperGradients 的训练器和数据加载器。本文适合想把 YOLO-NAS 接入自定义训练流程的同学。本文会重点跑通以下流程安装 SuperGradients 与可视化依赖下载示例图片并跑通预训练推理从数据集后台获取 YOLO 格式数据集配置训练参数并启动训练用测试集和混淆矩阵检查模型表现如果你正在系统学习目标检测、实例分割、OCR、多目标跟踪或视觉大模型建议收藏本文配套 notebook、示例图片和运行环境说明后续会继续整理。如果环境配置卡住可以在评论区说明具体报错。 文章目录YOLO-NAS 自定义目标检测训练实战SuperGradients 训练与测试⚙️ 环境准备⬇️ 下载权重与示例图片 预训练模型推理 从数据集后台获取 YOLO 数据集 配置训练参数️ 启动训练 训练后测试 批量预测可视化 结果评估 小结 同系列教程汇总⚙️ 环境准备先检查运行环境并安装依赖。建议优先使用带 NVIDIA GPU 的环境避免推理和训练阶段显存不足。!nvidia-smi!pip install-q supervision0.25.0# URLs changed for YOLO-NAS models, but the authors are not updating the repo# Issue: https://github.com/Deci-AI/super-gradients/issues/2057# Fix PR: https://github.com/Deci-AI/super-gradients/pull/2061# Option 1 - Install from patched branch. Does not work, causes different errors!# !pip install -q githttps://github.com/hannadiamond/super-gradientspatch-1# Option 2 - Install normally, and modify code# Pip errors are expected.!pip install-q githttps://github.com/Deci-AI/super-gradients.gitstable !sed-i-es/sghub.deci.ai/sg-hub-nv.s3.amazonaws.com/g/usr/local/lib/python3.10/dist-packages/super_gradients/training/pretrained_models.py !sed-i-es/sghub.deci.ai/sg-hub-nv.s3.amazonaws.com/g/usr/local/lib/python3.10/dist-packages/super_gradients/training/utils/checkpoint_utils.py# URLs changed for YOLO-NAS models, but the authors arent updating the repo# Issue: https://github.com/Deci-AI/super-gradients/issues/2057# Fix PR: https://github.com/Deci-AI/super-gradients/pull/2061# Option 1 - Install from patched branch. Does not work, causes different errors!# !pip install -q githttps://github.com/hannadiamond/super-gradientspatch-1# Option 2 - Install normally, and modify code# Pip errors are expected.!pip install-q githttps://github.com/Deci-AI/super-gradients.gitstable !sed-i-es/sghub.deci.ai/sg-hub-nv.s3.amazonaws.com/g/usr/local/lib/python3.10/dist-packages/super_gradients/training/pretrained_models.py !sed-i-es/sghub.deci.ai/sg-hub-nv.s3.amazonaws.com/g/usr/local/lib/python3.10/dist-packages/super_gradients/training/utils/checkpoint_utils.pyimportos HOMEos.getcwd()print(HOME)⬇️ 下载权重与示例图片先把 SAM checkpoint 和示例图片准备好。importtorch DEVICEcudaiftorch.cuda.is_available()elsecpuMODEL_ARCHyolo_nas_lfromsuper_gradients.trainingimportmodels modelmodels.get(MODEL_ARCH,pretrained_weightscoco).to(DEVICE)f{HOME}/data%cd{HOME}!mkdir{HOME}/data%cd{HOME}/data# 请从数据集后台下载示例图片保存为 dog.jpeg 到 dog-8.jpeg。 预训练模型推理用预训练模型在单张图上跑一遍检测结果。SOURCE_IMAGE_PATHf{HOME}/data/dog-3.jpegimportcv2 imagecv2.imread(SOURCE_IMAGE_PATH)resultmodel.predict(image,conf0.35)type(result)importsupervisionassv detectionssv.Detections(xyxyresult.prediction.bboxes_xyxy,confidenceresult.prediction.confidence,class_idresult.prediction.labels.astype(int))box_annotatorsv.BoxAnnotator()label_annotatorsv.LabelAnnotator()labels[f{result.class_names[class_id]}{confidence:0.2f}for_,_,confidence,class_id,_,_indetections]annotated_frameimage.copy()annotated_framebox_annotator.annotate(sceneannotated_frame,detectionsdetections)annotated_framelabel_annotator.annotate(sceneannotated_frame,detectionsdetections,labelslabels)%matplotlib inline sv.plot_image(annotated_frame,(12,12)) 从数据集后台获取 YOLO 数据集从数据集后台导出 YOLO 格式数据集后训练时直接引用本地路径。%cd{HOME}# 如需使用自定义数据集请从数据集后台下载 YOLO 格式数据并解压到本地目录。fromtypesimportSimpleNamespace DATASET_DIR/content/dataset# 修改为数据集后台导出的数据集目录datasetSimpleNamespace(locationDATASET_DIR)LOCATIONdataset.locationprint(location:,LOCATION)CLASSESsorted(project.classes.keys())print(classes:,CLASSES) 配置训练参数把 batch、epoch、类别和路径整理成训练参数。MODEL_ARCHyolo_nas_lBATCH_SIZE8MAX_EPOCHS25CHECKPOINT_DIRf{HOME}/checkpointsEXPERIMENT_NAMEproject.name.lower().replace( ,_)fromsuper_gradients.trainingimportTrainer trainerTrainer(experiment_nameEXPERIMENT_NAME,ckpt_root_dirCHECKPOINT_DIR)dataset_params{data_dir:LOCATION,train_images_dir:train/images,train_labels_dir:train/labels,val_images_dir:valid/images,val_labels_dir:valid/labels,test_images_dir:test/images,test_labels_dir:test/labels,classes:CLASSES}fromsuper_gradients.training.dataloaders.dataloadersimport(coco_detection_yolo_format_train,coco_detection_yolo_format_val)train_datacoco_detection_yolo_format_train(dataset_params{data_dir:dataset_params[data_dir],images_dir:dataset_params[train_images_dir],labels_dir:dataset_params[train_labels_dir],classes:dataset_params[classes]},dataloader_params{batch_size:BATCH_SIZE,num_workers:2})val_datacoco_detection_yolo_format_val(dataset_params{data_dir:dataset_params[data_dir],images_dir:dataset_params[val_images_dir],labels_dir:dataset_params[val_labels_dir],classes:dataset_params[classes]},dataloader_params{batch_size:BATCH_SIZE,num_workers:2})test_datacoco_detection_yolo_format_val(dataset_params{data_dir:dataset_params[data_dir],images_dir:dataset_params[test_images_dir],labels_dir:dataset_params[test_labels_dir],classes:dataset_params[classes]},dataloader_params{batch_size:BATCH_SIZE,num_workers:2})train_data.dataset.transformsfromsuper_gradients.trainingimportmodels modelmodels.get(MODEL_ARCH,num_classeslen(dataset_params[classes]),pretrained_weightscoco)fromsuper_gradients.training.lossesimportPPYoloELossfromsuper_gradients.training.metricsimportDetectionMetrics_050fromsuper_gradients.training.models.detection_models.pp_yolo_eimportPPYoloEPostPredictionCallback train_params{silent_mode:False,average_best_models:True,warmup_mode:linear_epoch_step,warmup_initial_lr:1e-6,lr_warmup_epochs:3,initial_lr:5e-4,lr_mode:cosine,cosine_final_lr_ratio:0.1,optimizer:Adam,optimizer_params:{weight_decay:0.0001},zero_weight_decay_on_bias_and_bn:True,ema:True,ema_params:{decay:0.9,decay_type:threshold},max_epochs:MAX_EPOCHS,mixed_precision:True,loss:PPYoloELoss(use_static_assignerFalse,num_classeslen(dataset_params[classes]),reg_max16),valid_metrics_list:[DetectionMetrics_050(score_thres0.1,top_k_predictions300,num_clslen(dataset_params[classes]),normalize_targetsTrue,post_prediction_callbackPPYoloEPostPredictionCallback(score_threshold0.01,nms_top_k1000,max_predictions300,nms_threshold0.7))],metric_to_watch:mAP0.50}️ 启动训练训练器和数据加载器准备好后就可以直接开始训练。trainer.train(modelmodel,training_paramstrain_params,train_loadertrain_data,valid_loaderval_data)%load_ext tensorboard%tensorboard--logdir{CHECKPOINT_DIR}/{EXPERIMENT_NAME}!zip-r yolo_nas.zip{CHECKPOINT_DIR}/{EXPERIMENT_NAME}# if you experience NotImplementedError: A UTF-8 locale is required. Got ANSI_X3.4-1968 error, run code below # import locale# locale.getpreferredencoding lambda: UTF-8 训练后测试用测试集检查 average model 或 best model 的表现。best_modelmodels.get(MODEL_ARCH,num_classeslen(dataset_params[classes]),checkpoint_pathf{CHECKPOINT_DIR}/{EXPERIMENT_NAME}/average_model.pth).to(DEVICE)trainer.test(modelbest_model,test_loadertest_data,test_metrics_listDetectionMetrics_050(score_thres0.1,top_k_predictions300,num_clslen(dataset_params[classes]),normalize_targetsTrue,post_prediction_callbackPPYoloEPostPredictionCallback(score_threshold0.01,nms_top_k1000,max_predictions300,nms_threshold0.7))) 批量预测可视化把测试集中的样本和预测结果并排显示方便人工检查。importsupervisionassv dssv.DetectionDataset.from_yolo(images_directory_pathf{dataset.location}/test/images,annotations_directory_pathf{dataset.location}/test/labels,data_yaml_pathf{dataset.location}/data.yaml,force_masksFalse)importsupervisionassv CONFIDENCE_TRESHOLD0.5predictions{}forimage_name,imageinds.images.items():resultlist(best_model.predict(image,confCONFIDENCE_TRESHOLD))[0]detectionssv.Detections(xyxyresult.prediction.bboxes_xyxy,confidenceresult.prediction.confidence,class_idresult.prediction.labels.astype(int))predictions[image_name]detectionsimportrandom random.seed(10)importsupervisionassv MAX_IMAGE_COUNT5nmin(MAX_IMAGE_COUNT,len(ds.images))keyslist(ds.images.keys())keysrandom.sample(keys,n)box_annotatorsv.BoxAnnotator()images[]titles[]forkeyinkeys:frame_with_annotationsbox_annotator.annotate(sceneds.images[key].copy(),detectionsds.annotations[key],skip_labelTrue)images.append(frame_with_annotations)titles.append(annotations)frame_with_predictionsbox_annotator.annotate(sceneds.images[key].copy(),detectionspredictions[key],skip_labelTrue)images.append(frame_with_predictions)titles.append(predictions)%matplotlib inline sv.plot_images_grid(imagesimages,titlestitles,grid_size(n,2),size(2*4,n*4)) 结果评估最后补上混淆矩阵整体看一遍分类和检测效果。!pip install onemetricimportosimportnumpyasnpfromonemetric.cv.object_detectionimportConfusionMatrix keyslist(ds.images.keys())annotation_batches,prediction_batches[],[]forkeyinkeys:annotationds.annotations[key]annotation_batchnp.column_stack((annotation.xyxy,annotation.class_id))annotation_batches.append(annotation_batch)predictionpredictions[key]prediction_batchnp.column_stack((prediction.xyxy,prediction.class_id,prediction.confidence))prediction_batches.append(prediction_batch)confusion_matrixConfusionMatrix.from_detections(true_batchesannotation_batches,detection_batchesprediction_batches,num_classeslen(ds.classes),conf_thresholdCONFIDENCE_TRESHOLD)confusion_matrix.plot(os.path.join(HOME,confusion_matrix.png),class_namesds.classes) 小结YOLO-NAS 的关键在于 SuperGradients 的训练参数和数据路径。只要数据集格式、类别列表和 checkpoint 路径对齐就能顺利完成训练和测试。这一类 notebook 建议按“先环境、再数据、再单样例、最后批量推理”的顺序复现。遇到报错时优先检查 GPU、依赖版本、数据集目录和模型权重路径。后续我会继续按源项目顺序整理同系列中的目标检测、实例分割、OCR、多目标跟踪和视觉大模型教程。 同系列教程汇总Google Gemini 3.5 Flash 零样本目标检测教程从提示词到可视化结果GLM-OCR 文档识别实战教程从验证码、公式到车牌 OCRRF-DETR ByteTrack 多目标跟踪实战教程从命令行到 Python 视频轨迹可视化SAM 3 图像分割实战教程文本、框和点提示的多种分割方式YOLO-NAS 自定义目标检测训练实战SuperGradients 训练与测试

相关新闻

网站维护与建设实训心得:从代码报错到上线发布的真实复盘

网站维护与建设实训心得:从代码报错到上线发布的真实复盘

刚结束那场漫长的实训,整个人像是被掏空了一样。坐在电脑前,看着屏幕上终于绿了的测试报告,心里那块石头才算落地。这次实训,真的让我对“网站维护与建设”这几个字有了全新的认识。以前总觉得建站就是搭个架子,填点内容,现在才明白,这背后全是细节和逻辑的博弈。回想刚…

发布时间:2026/7/15 0:30:55
别瞎忙活!网上书店网网站建设,这坑我替你踩了个遍

别瞎忙活!网上书店网网站建设,这坑我替你踩了个遍

做网上书店网网站建设,你是不是觉得只要把书挂上去,钱就哗哗来了?别逗了。我见过太多老板,花了几万块搭了个架子,结果上线半年,访客比自家猫还少。心累不?真累。记得前年,我帮一个做二手书的朋友老张搞网站。他那人,轴。非要搞什么“沉浸式阅读体验”,页面搞得跟迷宫…

发布时间:2026/7/15 0:30:18
别拿PPT糊弄甲方!这份网站页面建设方案书模板,专治各种“感觉不对”

别拿PPT糊弄甲方!这份网站页面建设方案书模板,专治各种“感觉不对”

做乙方,最怕什么?不是加班。是改稿。改到第18版,甲方老板突然说:“感觉不对,再大气一点。”你心里MMP,脸上笑嘻嘻。这种痛苦,谁做谁知道。很多时候,不是我们设计不行。是方案没写对。方案写得像流水账,甲方当然觉得你没用心。真正的高手,早就把方案变成了“武器”。今…

发布时间:2026/7/15 0:30:17
拒绝模板化!揭秘胶州家园网站建设背后的真实痛点与破局之道

拒绝模板化!揭秘胶州家园网站建设背后的真实痛点与破局之道

说实话,每次看到那些千篇一律的“胶州家园网站建设”案例,我都忍不住想叹气。真的,太让人失望了。现在的很多建站公司,仿佛是从同一个模具里倒出来的,首页是个大Banner,接着是几个冷冰冰的“关于我们”,最后放一排毫无生气的联系方式。这种网站,别说吸引客户了,连我自…

发布时间:2026/7/15 0:52:16
宝安区建设局网站到底咋用?别瞎找,这篇手把手教你查资质

宝安区建设局网站到底咋用?别瞎找,这篇手把手教你查资质

说实话,每次看到有人问“宝安区建设局网站”怎么进,或者在上面查不到东西就急得跳脚,我就想拍大腿。这网站确实有点“高冷”,界面看着像十年前的产物,功能也没那么直观。但如果你是想查个施工许可证、看个企业资质,或者了解最新的招投标动态,它又是绕不开的官方渠道。今…

发布时间:2026/7/15 0:52:03
避坑指南:资深项目经理分享网站建设管理经验与实战心得

避坑指南:资深项目经理分享网站建设管理经验与实战心得

说实话,刚入行那会儿,我也觉得做个网站就是找模板、改改字、上传服务器完事。直到去年接了个急单,甲方爸爸要求三天上线,结果呢?上线第一天,移动端适配全乱套,后台数据接口还报错。那几天我头发都快掉光了,才深刻意识到,网站建设管理经验,真的不是靠运气能蒙混过关的…

发布时间:2026/7/15 0:51:28
网站建设微信文章:别再花冤枉钱,揭秘高转化官网的底层逻辑

网站建设微信文章:别再花冤枉钱,揭秘高转化官网的底层逻辑

很多老板以为建个网站就是找个模板套一下,结果流量来了却接不住,钱打了水漂。这篇内容不聊虚的,直接拆解如何通过细节优化,让你的网站从“展示架”变成“销售员”。我们不仅要解决网站做得丑、加载慢的问题,更要解决如何让用户看完就想咨询的核心痛点。先说个真事。去年有…

发布时间:2026/7/15 0:50:56
芜湖高端网站建设避坑指南,揭秘真实报价与隐形陷阱

芜湖高端网站建设避坑指南,揭秘真实报价与隐形陷阱

别被“几千块包域名主机”的广告骗了。 你的企业官网不是发传单,是门面。 这篇文只讲真话,帮你省下冤枉钱。我在芜湖做项目这五年, 见过太多老板因为贪便宜, 最后网站打不开,数据还泄露。高端网站到底贵在哪? 不是代码有多复杂, 而是细节里的魔鬼。先说价格,这是最扎心…

发布时间:2026/7/15 0:50:50
揭秘网站建设公司的优势,为何专业团队更省心?

揭秘网站建设公司的优势,为何专业团队更省心?

说实话,刚开始想做个网站的时候,我脑子里全是问号。真的有必要找公司吗?自己用模板拼一个不行吗?便宜啊,模板才几百块。但后来碰了几次壁,我才明白,有些钱真不能省。今天就想跟你掏心窝子聊聊,这背后的门道。先说个场景吧。去年我想给自家小店做个展示页。想着找个大学…

发布时间:2026/7/15 0:50:37
nRF Sniffer 在Wireshark中的高效过滤与实战技巧

nRF Sniffer 在Wireshark中的高效过滤与实战技巧

1. 初识nRF Sniffer与Wireshark黄金组合当你第一次把nRF52840 Dongle插入电脑时,可能没想到这个小玩意儿会成为BLE调试的"显微镜"。作为专为蓝牙低功耗设计的嗅探工具,nRF Sniffer配合Wireshark就像给开发者装上了X光眼镜,能清晰看…

发布时间:2026/7/15 0:00:38
别被忽悠了,普通人怎么选择五屏网站建设才不踩坑

别被忽悠了,普通人怎么选择五屏网站建设才不踩坑

前年我接手公司官网改版,当时脑子一热,觉得搞个“五屏自适应”听起来特别高大上。结果呢?上线第一周,客服电话被打爆,全是客户说手机上看图糊成马赛克,按钮还点不动。那几天我头发都愁白了,找技术对线,找设计扯皮,最后发现全是沟通不到位留下的坑。今天就把我踩过的雷…

发布时间:2026/7/15 0:00:52
泰州网站建设案例揭秘:从0到1的避坑指南与实战心得

泰州网站建设案例揭秘:从0到1的避坑指南与实战心得

泰州网站建设案例 你是否还在为网站打开速度慢而焦虑?是否因为转化率低下而怀疑自己的产品?这篇内容直接给你答案。我不讲虚的理论,只讲怎么把网站做成赚钱机器。做网站最怕什么?怕像绣花枕头,中看不中用。我见过太多泰州的企业老板,花了几万块做个高大上的首页。结果用户…

发布时间:2026/7/15 0:00:52
别装了,你的学院网站建设推进会就是场大型尴尬现场

别装了,你的学院网站建设推进会就是场大型尴尬现场

看着后台那点可怜的访问量,你急不急?方案改了八版,还是没人看。今天这文,只说怎么把会开成,把事做成。上周去隔壁职院蹭会,那场面,真叫一个窒息。会议室里坐满了人,领导在台上讲PPT,底下的人不是在玩手机,就是在发呆。投影仪闪了两下,灭了。没人去修,接着讲。这种会…

发布时间:2026/7/14 8:24:42
七彩建设集团官方网站怎么找?避坑指南与真实体验分享

七彩建设集团官方网站怎么找?避坑指南与真实体验分享

找官网找得头大?这篇直接告诉你怎么辨别真伪,别被假网站坑了钱。昨天半夜两点,我还在电脑前盯着屏幕,心里那个急啊。家里装修刚进场,工长突然说需要确认一份材料清单,说是七彩建设那边要求的。我手忙脚乱地打开浏览器,搜了一堆“七彩建设”,结果出来一堆广告,什么“七…

发布时间:2026/7/14 2:42:40
找可信赖的龙岗网站建设公司?别踩坑,看这几点就够

找可信赖的龙岗网站建设公司?别踩坑,看这几点就够

做企业,网站就是脸面。 在龙岗,想找个靠谱的网站公司,真不容易。 市面上广告满天飞。 承诺得天花乱坠。 最后交付的东西,却让人想砸电脑。 今天不聊虚的。 只聊怎么避坑。 怎么找到真正可信赖的龙岗网站建设团队。先说个大实话。 别信什么“三天上线”。 那是骗小白的。 正…

发布时间:2026/7/14 19:05:38
建站7年才悟出的网站建设思路,别再花冤枉钱了

建站7年才悟出的网站建设思路,别再花冤枉钱了

做建站这行整整7年了。 见过太多老板花几万块, 最后做出来的网站像个垃圾场。 今天不整那些虚头巴脑的术语。 就聊聊我踩过的坑, 和真正能落地的网站建设思路。很多老板一上来就问: “多少钱能做个高大上的?” 我通常直接劝退。 因为方向错了, 你给再多钱也是打水漂。 真正…

发布时间:2026/7/14 13:09:53
合肥的网站建设避坑指南:别被低价忽悠,这3个细节决定生死

合肥的网站建设避坑指南:别被低价忽悠,这3个细节决定生死

做企业官网最怕什么?不是技术难,是交钱后没人管,或者上线一个月连个访客都没有。这篇东西不扯虚的,直接告诉你怎么在合肥找个靠谱的团队,或者自己怎么避坑。先说个大实话,我在合肥混这行五年多,见过太多老板因为贪便宜吃大亏。你去百度搜“合肥的网站建设”,出来一堆报…

发布时间:2026/7/10 18:05:06
别被忽悠了!德州网站建设那些坑,我拿真金白银换来的教训

别被忽悠了!德州网站建设那些坑,我拿真金白银换来的教训

做这行久了,心里就憋着一股火。每次看到客户拿着网上抄来的模板,问我能不能做成“苹果官网”那种效果。我就想笑。真的,太想笑了。今天咱不整那些虚头巴脑的专业术语。就聊聊德州网站建设里,那些让人头秃的真实事儿。我有个客户,老张。他是做德州本地建材的,实在人。当初…

发布时间:2026/7/13 2:08:03