当前位置: 首页 > news >正文

自己做的网站能卖么重庆建工集团建设网站

自己做的网站能卖么,重庆建工集团建设网站,网站建设与规划专业,东莞市住房和城乡建设局网首先蒸馏是什么#xff1f; 模型蒸馏#xff08;Model Distillation#xff09;是一种用于在计算机视觉中提高模型性能和效率的技术。在模型蒸馏中#xff0c;通常存在两个模型#xff0c;即“教师模型”和“学生模型”。 为什么需要蒸馏#xff1f; 在不增加模型计算…首先蒸馏是什么 模型蒸馏Model Distillation是一种用于在计算机视觉中提高模型性能和效率的技术。在模型蒸馏中通常存在两个模型即“教师模型”和“学生模型”。 为什么需要蒸馏 在不增加模型计算量和参数量的情况下提升精度也即是可以无损提高精度。配合剪枝一起使用可以尽量达到无损降低模型参数量、计算量提高FPS的情况下还能保持模型精度没有下降甚至上升这是改进网络结构无法达到的高度。论文中的保底手段因为剪枝和蒸馏的特殊性其都不会增加参数量和计算量可以在最后一个点上大幅度增加实验和工作量因为本身蒸馏也需要做大量实验。 目录 一.代码前提 1本文选取的老师模型为yolov8s学生为剪枝完的yolov8s 2本文使用的蒸馏方法包括mgdcwd 3使用前下载必须的包并且把数据集放在datasets文件夹中最后替换data.yaml中分类。 二.蒸馏步骤 (1) 训练教师模型 (2) 训练学生模型 (3) 蒸馏训练 三.模型剪枝蒸馏 1约束训练在我上一篇文章中提到链接yolov8剪枝 2约束训练后先进行剪枝使用prune.py。替换模型位置直接运行。 3剪完枝后效果不一定好所以使用剪枝完后的模型继续训练 一.代码前提 1本文选取的老师模型为yolov8s学生为剪枝完的yolov8s 2本文使用的蒸馏方法包括mgdcwd 3使用前下载必须的包并且把数据集放在datasets文件夹中最后替换data.yaml中分类。 本文代码已经上传到GitHub链接yolov8_蒸馏 使用不妨加个关注后续还会加入Vitvision transformer替换loss等提升精度的方法。 二.蒸馏步骤 (1) 训练教师模型 打开文件中train.py替换模型文件位置。开始训练达到理想目标就停止。 import os from ultralytics import YOLO import torch os.environ[KMP_DUPLICATE_LIB_OK] Truedef main():model YOLO(yolov8s.pt)model.train(datadata.yaml, Distillation None, loss_typeNone, ampFalse, imgsz640, epochs50, batch20, device0, workers0)if __name__ __main__:main()(2) 训练学生模型 打开文件中train.py替换模型文件位置。我这边使用的是剪枝后的yolov8s模型具体轻量化剪枝步骤可见本文最后。 import os from ultralytics import YOLO import torch os.environ[KMP_DUPLICATE_LIB_OK] Truedef main():model_s YOLO(./runs/detect/prune/weights/prune.pt)model_s.train(datadata.yaml, Distillation None, loss_typeNone, ampFalse, imgsz640, epochs50, batch20, device0, workers0)if __name__ __main__:main()(3) 蒸馏训练 打开文件中train_distillation.py替换老师与学生模型文件位置。两种蒸馏方法可以选择cwd和mgd。 import os from ultralytics import YOLO import torchos.environ[KMP_DUPLICATE_LIB_OK] Truedef main():model_t YOLO(runs/detect/yolov8s/weights/best.pt) # the teacher modelmodel_s YOLO(runs/detect/prune/weights/best.pt) # the student modelAttributes:Distillation: the distillation modelloss_type: mgd, cwdamp: Automatic Mixed Precisionmodel_s.train(datadata.yaml, Distillationmodel_t.model, loss_typemgd, ampFalse, imgsz640, epochs100,batch20, device0, workers0, lr00.001)if __name__ __main__:main()现在先不进行训练打开文件夹yolo_project_distillation\ultralytics\engine\trainer.py 在类FeatureLoss中函数forward大概162行处打一个断点进行调试。代码位置 def forward(self, y_s, y_t):assert len(y_s) len(y_t)tea_feats []stu_feats []for idx, (s, t) in enumerate(zip(y_s, y_t)):# change ---if self.distiller cwd:s self.align_module[idx](s)s self.norm[idx](s)else:s self.norm1[idx](s)t self.norm[idx](t)tea_feats.append(t)stu_feats.append(s)loss self.feature_loss(stu_feats, tea_feats)return self.loss_weight * loss 调试运行查看变量中学生模型y_s和老师模型y_t的张量大小。把通道数记下来写在类Distillation_loss的 channels_s [256, 480, 256, 64, 143, 229][-le:]channels_t [256, 512, 256, 128, 256, 512][-le:] 这边总共有六个刚好对应模型的六个层的通道数。 替换完成后应该就可以进行训练了。训练不好的话再来评论区找我吧。 三.模型剪枝蒸馏 1约束训练在我上一篇文章中提到链接yolov8剪枝 2约束训练后先进行剪枝使用prune.py。替换模型位置直接运行。 from ultralytics import YOLO import torch from ultralytics.nn.modules import Bottleneck, Conv, C2f, SPPF, Detect from copy import deepcopy# Load a model yolo YOLO(./runs/detect/yolov8s/weights/last.pt) # Save model address res_dir ./runs/detect/prune/weights/prune.pt # Pruning rate factor 0.75yolo.info() model yolo.model ws [] bs []for name, m in model.named_modules():if isinstance(m, torch.nn.BatchNorm2d):w m.weight.abs().detach()b m.bias.abs().detach()ws.append(w)bs.append(b)# print(name, w.max().item(), w.min().item(), b.max().item(), b.min().item())# keepws torch.cat(ws) threshold torch.sort(ws, descendingTrue)[0][int(len(ws) * factor)] print(threshold)def prune_conv(conv1: Conv, conv2: Conv):gamma conv1.bn.weight.data.detach()beta conv1.bn.bias.data.detach()keep_idxs []local_threshold thresholdwhile len(keep_idxs) 8:keep_idxs torch.where(gamma.abs() local_threshold)[0]local_threshold local_threshold * 0.5n len(keep_idxs)# n max(int(len(idxs) * 0.8), p)# print(n / len(gamma) * 100)# scale len(idxs) / nconv1.bn.weight.data gamma[keep_idxs]conv1.bn.bias.data beta[keep_idxs]conv1.bn.running_var.data conv1.bn.running_var.data[keep_idxs]conv1.bn.running_mean.data conv1.bn.running_mean.data[keep_idxs]conv1.bn.num_features nconv1.conv.weight.data conv1.conv.weight.data[keep_idxs]conv1.conv.out_channels nif conv1.conv.bias is not None:conv1.conv.bias.data conv1.conv.bias.data[keep_idxs]if not isinstance(conv2, list):conv2 [conv2]for item in conv2:if item is not None:if isinstance(item, Conv):conv item.convelse:conv itemconv.in_channels nconv.weight.data conv.weight.data[:, keep_idxs]def prune(m1, m2):if isinstance(m1, C2f): # C2f as a top convm1 m1.cv2if not isinstance(m2, list): # m2 is just one modulem2 [m2]for i, item in enumerate(m2):if isinstance(item, C2f) or isinstance(item, SPPF):m2[i] item.cv1prune_conv(m1, m2)for name, m in model.named_modules():if isinstance(m, Bottleneck):prune_conv(m.cv1, m.cv2)seq model.model for i in range(3, 9):if i in [6, 4, 9]: continueprune(seq[i], seq[i 1])detect: Detect seq[-1] last_inputs [seq[15], seq[18], seq[21]] colasts [seq[16], seq[19], None] for last_input, colast, cv2, cv3 in zip(last_inputs, colasts, detect.cv2, detect.cv3):prune(last_input, [colast, cv2[0], cv3[0]])prune(cv2[0], cv2[1])prune(cv2[1], cv2[2])prune(cv3[0], cv3[1])prune(cv3[1], cv3[2])for name, p in yolo.model.named_parameters():p.requires_grad True#yolo.val(workers0) # 剪枝模型进行验证 yolo.val(workers0) yolo.info() # yolo.export(formatonnx) # 导出为onnx文件 # yolo.train(data./data/data_nc5/data_nc5.yaml, epochs100) # 剪枝后直接训练微调 ckpt {epoch: -1,best_fitness: None,model: yolo.ckpt[ema],ema: None,updates: None,optimizer: None,train_args: yolo.ckpt[train_args], # save as dictdate: None,version: 8.0.142}torch.save(yolo.ckpt, res_dir)3剪完枝后效果不一定好所以使用剪枝完后的模型继续训练 import os from ultralytics import YOLO import torch os.environ[KMP_DUPLICATE_LIB_OK] Truedef main():# model YOLO(rultralytics/cfg/models/v8/yolov8s.yaml).load(runs/detect/yolov8s/weights/best.pt)model_s YOLO(./runs/detect/prune/weights/prune.pt)model_s.train(datadata.yaml, Distillation None, loss_typeNone, ampFalse, imgsz640, epochs50, batch20, device0, workers0)if __name__ __main__:main()------------------------------------------over------------------------------
文章转载自:
http://www.morning.ycwym.cn.gov.cn.ycwym.cn
http://www.morning.yrctp.cn.gov.cn.yrctp.cn
http://www.morning.rdymd.cn.gov.cn.rdymd.cn
http://www.morning.yxlhz.cn.gov.cn.yxlhz.cn
http://www.morning.pffx.cn.gov.cn.pffx.cn
http://www.morning.krtcjc.cn.gov.cn.krtcjc.cn
http://www.morning.qbgff.cn.gov.cn.qbgff.cn
http://www.morning.xptkl.cn.gov.cn.xptkl.cn
http://www.morning.jnrry.cn.gov.cn.jnrry.cn
http://www.morning.fbjnr.cn.gov.cn.fbjnr.cn
http://www.morning.qcslh.cn.gov.cn.qcslh.cn
http://www.morning.tqygx.cn.gov.cn.tqygx.cn
http://www.morning.jxdhc.cn.gov.cn.jxdhc.cn
http://www.morning.qqtzn.cn.gov.cn.qqtzn.cn
http://www.morning.nqbs.cn.gov.cn.nqbs.cn
http://www.morning.wmlby.cn.gov.cn.wmlby.cn
http://www.morning.jhzct.cn.gov.cn.jhzct.cn
http://www.morning.xcxj.cn.gov.cn.xcxj.cn
http://www.morning.hnpkr.cn.gov.cn.hnpkr.cn
http://www.morning.cjnfb.cn.gov.cn.cjnfb.cn
http://www.morning.fkflc.cn.gov.cn.fkflc.cn
http://www.morning.rkwwy.cn.gov.cn.rkwwy.cn
http://www.morning.fgkrh.cn.gov.cn.fgkrh.cn
http://www.morning.lssfd.cn.gov.cn.lssfd.cn
http://www.morning.krdmn.cn.gov.cn.krdmn.cn
http://www.morning.tgqzp.cn.gov.cn.tgqzp.cn
http://www.morning.yqndr.cn.gov.cn.yqndr.cn
http://www.morning.mnygn.cn.gov.cn.mnygn.cn
http://www.morning.knngw.cn.gov.cn.knngw.cn
http://www.morning.trmpj.cn.gov.cn.trmpj.cn
http://www.morning.dskmq.cn.gov.cn.dskmq.cn
http://www.morning.bwkzn.cn.gov.cn.bwkzn.cn
http://www.morning.rlnm.cn.gov.cn.rlnm.cn
http://www.morning.zfgh.cn.gov.cn.zfgh.cn
http://www.morning.dhqzc.cn.gov.cn.dhqzc.cn
http://www.morning.wlddq.cn.gov.cn.wlddq.cn
http://www.morning.zfqr.cn.gov.cn.zfqr.cn
http://www.morning.bwhcl.cn.gov.cn.bwhcl.cn
http://www.morning.psxcr.cn.gov.cn.psxcr.cn
http://www.morning.pymff.cn.gov.cn.pymff.cn
http://www.morning.pcrzf.cn.gov.cn.pcrzf.cn
http://www.morning.fnpmf.cn.gov.cn.fnpmf.cn
http://www.morning.sbdqy.cn.gov.cn.sbdqy.cn
http://www.morning.qzbwmf.cn.gov.cn.qzbwmf.cn
http://www.morning.nmkbl.cn.gov.cn.nmkbl.cn
http://www.morning.qphdp.cn.gov.cn.qphdp.cn
http://www.morning.hlxxl.cn.gov.cn.hlxxl.cn
http://www.morning.rfrx.cn.gov.cn.rfrx.cn
http://www.morning.qbkw.cn.gov.cn.qbkw.cn
http://www.morning.bswxt.cn.gov.cn.bswxt.cn
http://www.morning.tslfz.cn.gov.cn.tslfz.cn
http://www.morning.nfcxq.cn.gov.cn.nfcxq.cn
http://www.morning.nrrzw.cn.gov.cn.nrrzw.cn
http://www.morning.fnrkh.cn.gov.cn.fnrkh.cn
http://www.morning.tmzlt.cn.gov.cn.tmzlt.cn
http://www.morning.pmdlk.cn.gov.cn.pmdlk.cn
http://www.morning.qcmhs.cn.gov.cn.qcmhs.cn
http://www.morning.nspbj.cn.gov.cn.nspbj.cn
http://www.morning.ksjnl.cn.gov.cn.ksjnl.cn
http://www.morning.ryjqh.cn.gov.cn.ryjqh.cn
http://www.morning.rbjp.cn.gov.cn.rbjp.cn
http://www.morning.fpjxs.cn.gov.cn.fpjxs.cn
http://www.morning.bpmnx.cn.gov.cn.bpmnx.cn
http://www.morning.gyjld.cn.gov.cn.gyjld.cn
http://www.morning.tznlz.cn.gov.cn.tznlz.cn
http://www.morning.qhvah.cn.gov.cn.qhvah.cn
http://www.morning.qmfhh.cn.gov.cn.qmfhh.cn
http://www.morning.zrgdd.cn.gov.cn.zrgdd.cn
http://www.morning.rljr.cn.gov.cn.rljr.cn
http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn
http://www.morning.rwlsr.cn.gov.cn.rwlsr.cn
http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn
http://www.morning.knwry.cn.gov.cn.knwry.cn
http://www.morning.rxxdk.cn.gov.cn.rxxdk.cn
http://www.morning.pxsn.cn.gov.cn.pxsn.cn
http://www.morning.mhnd.cn.gov.cn.mhnd.cn
http://www.morning.ltdrz.cn.gov.cn.ltdrz.cn
http://www.morning.zkqjz.cn.gov.cn.zkqjz.cn
http://www.morning.dcpbk.cn.gov.cn.dcpbk.cn
http://www.morning.hrjrt.cn.gov.cn.hrjrt.cn
http://www.tj-hxxt.cn/news/247894.html

相关文章:

  • 永康建设网站广告设计与制作包括哪些内容
  • 大连鑫农建设集团网站寮步仿做网站
  • 网站背景全屏广州安全教育平台账号是多少
  • 找人做的网站怎么看ftp网站栏目设置完整度建设
  • 网站如何留住客户网站开发协议书
  • 上海定制化网站开发公司丹阳做网站的
  • 2015帝国cms网站国际最好的摄影作品网站
  • 苏州做网站推广的免费行情软件app网站下载大全
  • 专业的企业网站优化公司网站空间免备案
  • 建设银行注册网站名咋设置wordpress批量读取excel
  • 伊春市建设局网站wordpress 字体 插件下载地址
  • 静态网站管理系统信主网站
  • 宜宾建设局网站热狗seo顾问
  • 网站备案 godaddy电子版个人简历
  • 电子商务网站建设行情网页设计大专工资一般多少
  • 滨州网站定制搬瓦工搭建wordpress
  • 做兼职在什么网站上找淄博桓台网站建设报价
  • 六安市网站制作吉林商城网站建设
  • 济宁企业做网站如何制作收费网站
  • 全国做网站的内容管理系统软件
  • 怎么查网站有没有做404深圳设计产业园
  • 郑州住房和城乡建设部网站wordpress raw
  • html5网站开发公司在云服务器打建网站
  • 昆明网站建设哪家便宜购物网站的模块
  • 最新网站推广方法wordpress分类目录浏览权限
  • 注册网站如何备案温州建设银行网站
  • 成都营销网站建设团队虚拟主机网站建设实训总结
  • 可以免费做网站推广的平台app开发公司查询
  • 怎么制作网站程序如何用nat123做网站
  • 贪玩手游官方网站东莞网站建设 少儿托管