Code Monkey home page Code Monkey logo

Comments (31)

BowieHsu avatar BowieHsu commented on August 16, 2024

试试脚本里面的convert_efficient_to_yolov5函数,需要同时抓一下您训好的ET模型和您原来的那个yolov5模型,重新存成一份新的yolov5可以识别的模型

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

试试脚本里面的convert_efficient_to_yolov5函数,需要同时抓一下您训好的ET模型和您原来的那个yolov5模型,重新存成一份新的yolov5可以识别的模型

转换的时候报错:ModuleNotFoundError: No module named 'models.detector.yolo_ssod'
我传的参数convert_efficient_to_yolov5(mula_path='best.pt', map_path='map.txt', yolov5_path='/share/disk1/ml/code/yolov5-master/runs/train/exp3/weights/best.pt', save_path='./finish_model/yolov5x.pt')
第一个是训好的ET模型,第三个是原本的yolo模型

from efficientteacher.

BowieHsu avatar BowieHsu commented on August 16, 2024

知道您的状态了,我来修一下代码 @Ma-Liang-hub

from efficientteacher.

BowieHsu avatar BowieHsu commented on August 16, 2024

@Ma-Liang-hub 您好,我这边用我们上传的模型转出到标准YOLOv5的格式,用6.2版本的val.py推出来的coco mAP是一致的,您试试。

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

@Ma-Liang-hub 您好,我这边用我们上传的模型转出到标准YOLOv5的格式,用6.2版本的val.py推出来的coco mAP是一致的,您试试。

可以是可以了,但转出之后map[50:95]从0.618降到了0.478.。。。。。。。太惨了

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

@Ma-Liang-hub 您好,我这边用我们上传的模型转出到标准YOLOv5的格式,用6.2版本的val.py推出来的coco mAP是一致的,您试试。

我用的也是6.2版本的val.py测的

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

@Ma-Liang-hub 您好,我这边用我们上传的模型转出到标准YOLOv5的格式,用6.2版本的val.py推出来的coco mAP是一致的,您试试。

我用的也是6.2版本的val.py测的

from efficientteacher.

BowieHsu avatar BowieHsu commented on August 16, 2024

@Ma-Liang-hub 可能是anchor没有转出来,我转的时候跳过anchor了,您的anchor是重新聚的么,因为我验过coco上的准确率是一模一样的

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

@Ma-Liang-hub 可能是anchor没有转出来,我转的时候跳过anchor了,您的anchor是重新聚的么,因为我验过coco上的准确率是一模一样的

我用的默认的anchor

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

@Ma-Liang-hub 可能是anchor没有转出来,我转的时候跳过anchor了,您的anchor是重新聚的么,因为我验过coco上的准确率是一模一样的

我用的默认的anchor

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

@Ma-Liang-hub 可能是anchor没有转出来,我转的时候跳过anchor了,您的anchor是重新聚的么,因为我验过coco上的准确率是一模一样的

您觉得还可能是因为什么原因呢?我训练测试ET模型和标准yolo模型的conda环境不一样(pytorch版本不一样),这会有影响吗

from efficientteacher.

BowieHsu avatar BowieHsu commented on August 16, 2024

@Ma-Liang-hub 不太会有影响,我用了两个torch版本的容器分别测过,您两边用的验证时用的conf_thresh和iou_thresh是一样的吗?还有更多的细节能提供给我吗

from efficientteacher.

BowieHsu avatar BowieHsu commented on August 16, 2024

@Ma-Liang-hub 您好,请问这个问题解决了吗?精度能对上吗

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

@Ma-Liang-hub 您好,请问这个问题解决了吗?精度能对上吗

您好,还是不太行,我说我的val过程:
ET模型val命令:python val.py --cfg configs/ssod/custom/yolov5l_custom_ssod.yaml --weights yolov5_ssod/exp3/weights/best.pt --val-ssod 【参数为默认:nms_conf_thres: 0.1 nms_iou_thres: 0.65】
转出yolov5后val: python val.py --weights ..../yolov5x.pt --data ..../data/coco128.yaml --img 640 --conf-thres 0.1 --iou-thres 0.65
val结果:前者为61.8%;后者为50.2%

from efficientteacher.

BowieHsu avatar BowieHsu commented on August 16, 2024

@Ma-Liang-hub 您好,我们val的默认参数conf是0.001,所以val.py里也需要加上--conf-thres 0.1 --iou-thres 0.65的命令,完整的命令 是
python val.py --cfg configs/ssod/custom/yolov5l_custom_ssod.yaml --weights yolov5_ssod/exp3/weights/best.pt --val-ssod --conf-thres 0.1 --iou-thres 0.65

from efficientteacher.

PHI6kai avatar PHI6kai commented on August 16, 2024

您好想问一下您导出的时候出现过这样的情况吗?
image

from efficientteacher.

BowieHsu avatar BowieHsu commented on August 16, 2024

您好,日志显示您用来存的那个yolov5模型有80个类,而efficientteacher的模型类别不是80,您需要用标准yolov5在自己数据集上训的pt作为导出时的引导pt

from efficientteacher.

PHI6kai avatar PHI6kai commented on August 16, 2024

@BowieHsu 您好,我的训练后的类别是2类,我尝试了一下,如果nc=80那么转ET或者转pt都可以,但是目前我的模型只能是nc=2,想问一下这种情况如何转到pt

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

@Ma-Liang-hub 您好,我们val的默认参数conf是0.001,所以val.py里也需要加上--conf-thres 0.1 --iou-thres 0.65的命令,完整的命令 是 python val.py --cfg configs/ssod/custom/yolov5l_custom_ssod.yaml --weights yolov5_ssod/exp3/weights/best.pt --val-ssod --conf-thres 0.1 --iou-thres 0.65

这下差距变更大了,ET模型上升到64.5%的map

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

@Ma-Liang-hub 您好,请问这个问题解决了吗?精度能对上吗

当初转ET模型的时候,map转成ET上升了0.7%,半监督训练完成后,相比刚转完的ET模型map提升0.8%,最终转回yolo模型后map狂降13.6%............

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

@Ma-Liang-hub 您好,请问这个问题解决了吗?精度能对上吗

转出yolo模型这里有个疑惑:
yolov5_ckpt['model'] = deepcopy(yolov5_model)
yolov5_ckpt['ema'] = deepcopy(yolov5_model)

ckpt['updates'] = 0

torch.save(yolov5_ckpt, save_path)
为啥要拷贝两份模型导出呢?

from efficientteacher.

PHI6kai avatar PHI6kai commented on August 16, 2024

@Ma-Liang-hub 您好想问一下您ET转PT的是怎么操作的?

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

@Ma-Liang-hub 您好想问一下您ET转PT的是怎么操作的?

就是执行convert_pt_to_efficient.py:convert_efficient_to_yolov5(efficient_path='./best.pt', yolov5_path='./weights/best.pt', save_path='./yolov5x.pt')

from efficientteacher.

PHI6kai avatar PHI6kai commented on August 16, 2024

您的这个yolov5_path='./weights/best.pt'是之前跑有监督的时候生成的模型吗?我导出之后发现直接放入yolov5的detect无法运行

from efficientteacher.

BowieHsu avatar BowieHsu commented on August 16, 2024

截屏2023-03-13 下午9 30 17
@Ma-Liang-hub 您好,我参考的是运行完对ckpt的操作,在训练时,会存下每个epoch的model和ema,然后在训练结束后,会把ema的权重赋给model

from efficientteacher.

Ma-Liang-hub avatar Ma-Liang-hub commented on August 16, 2024

截屏2023-03-13 下午9 30 17 @Ma-Liang-hub 您好,我参考的是运行完对ckpt的操作,在训练时,会存下每个epoch的model和ema,然后在训练结束后,会把ema的权重赋给model

目前这个代码中有伪标签阈值自适应的功能吗,动态计算的过程在哪里呀,我看了半天代码貌似没找到

from efficientteacher.

delicate00 avatar delicate00 commented on August 16, 2024

image
请问我转换权重文件这里是不是理解有问题:best.py指官方v5转ET;yolov5s_custom.yaml指只修改过depth_multiple、width_multiple、nc和classes的此代码文件;efficient_v5.pt是转换成ET的权重文件

from efficientteacher.

BowieHsu avatar BowieHsu commented on August 16, 2024

@delicate00 您好,您的理解是正确的

from efficientteacher.

delicate00 avatar delicate00 commented on August 16, 2024

@delicate00 您好,您的理解是正确的

您好,我需要根据我在官方上改进后训练的配置文件去修改一下 下载et源码中的yolov5s_custom.yaml文件吗?还是说我只需要修改一下“depth_multiple、width_multiple、nc和classes”这些参数即可呢?因为我标准转ET后,用val.py文件验证,各项指标都为0,是跟我用标准训练出来的权重有关系吗?

from efficientteacher.

hytxx avatar hytxx commented on August 16, 2024

@BowieHsu 您好,直接进行半监督训练,训练完成后转onxx,
1、直接使用 python export.py --weights yolov5_ssod/exp/weights/best.pt --imgsz 640 --simplify --opset 11 --device 1 --include 'onnx'
2、报错:ONNX: export failure: ONNX export failed: Couldn't export Python operator GradReverse,请问怎么解决?
3、et模型需要先转标准yolov5 然后转onnx?

from efficientteacher.

ZAntonyH avatar ZAntonyH commented on August 16, 2024

试试脚本里面的convert_efficient_to_yolov5函数,需要同时抓一下您训好的ET模型和您原来的那个yolov5模型,重新存成一份新的yolov5可以识别的模型

转换的时候报错:ModuleNotFoundError: No module named 'models.detector.yolo_ssod' 我传的参数convert_efficient_to_yolov5(mula_path='best.pt', map_path='map.txt', yolov5_path='/share/disk1/ml/code/yolov5-master/runs/train/exp3/weights/best.pt', save_path='./finish_model/yolov5x.pt') 第一个是训好的ET模型,第三个是原本的yolo模型

老铁,这个报错你怎么解决的

试试脚本里面的convert_efficient_to_yolov5函数,需要同时抓一下您训好的ET模型和您原来的那个yolov5模型,重新存成一份新的yolov5可以识别的模型

转换的时候报错:ModuleNotFoundError: No module named 'models.detector.yolo_ssod' 我传的参数convert_efficient_to_yolov5(mula_path='best.pt', map_path='map.txt', yolov5_path='/share/disk1/ml/code/yolov5-master/runs/train/exp3/weights/best.pt', save_path='./finish_model/yolov5x.pt') 第一个是训好的ET模型,第三个是原本的yolo模型

大佬这个你怎么解决的

from efficientteacher.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.