Natsu-Akatsuki / RangeNetTrt8

tensorrt8 && cuda && libtorch implementation of rangenet++
MIT License
44 stars 9 forks source link

自己训练的rangenet++转trt,分割结果全是错误的 #14

Closed 1806610292 closed 6 months ago

1806610292 commented 10 months ago

您好,首先感谢您的代码,让我收益颇多! 我用自己的数据重新训练了rangenet++网络,用的darknet主干网络。用您仓库的代码进行部署时,分割结果全是错的。 我把输入trt和trt的输出结果都打印出来看了一下,输入的数据没问题,但是trt的输出结果并不是整数索引,是1.68156e-44这样接近于0的数值,思考了很久没有找到原因,大佬有没有什么建议?期待您的回复,非常感谢!

Natsu-Akatsuki commented 10 months ago

您好,我这边对你出现的问题没有什么经验。 话说,您是在哪一行打日志来显示整数索引呢,理论上来说我这边是经过 ktop 之后的结果,返回的是整形数据(https://github.com/Natsu-Akatsuki/RangeNetTrt8/blob/main/src/network/netTensorRT.cpp#L299

1806610292 commented 10 months ago

感谢您的回复!

我在python上推理成功了,python代码中proj_argmax = proj_output[0].argmax(dim=0),proj_argmax 的结果是整数索引(我理解的整数索引是,我分了15类,proj_argmax的shape是64*2048,proj_argmax的值是1到15的整数)

我把netTensorRT.cpp第93行的_hostBuffers[1]的值写进了txt文档,发现里面的值都是类似1.68156e-44,但是我注意到您的代码netTensorRT.cpp第101行 label_image[pixel_id] = ((int *) _hostBuffers[1])[pixel_id]把_hostBuffers[1]的值中的值转换成了整数索引。因为我分了15类,索引的结果只有0,3,6,12这几类,我排查了输入的点云没有错误,但是分割标签完全不对。博主有没有好的建议应该从哪些方面排查

cuda是10.2 tensorrt是8.2.1.8

Natsu-Akatsuki commented 10 months ago

1、是的,我这边的整数索引,对应的是类别概率最大的类的 index。 2、您写到文件的时候有没有进行指针转换。就好像您提到的 101行,我是显式说明了要用整型的方式取值 / decode,(int *)。您这个怎么有种使用浮点型进行二进制数据 decode 的感觉。另外,我感觉严谨一些我这边也不算类型转换,只是内存数据的 decoder 方式而已,是使用整型,还是浮点型,还是字符型去读取数据而已。 3、您现在唯一的不同是否只是模型不同,数据是一样的,都是 KITTI 数据集?

UyeYwb commented 10 months ago

感谢您的回复!

我在python上推理成功了,python代码中proj_argmax = proj_output[0].argmax(dim=0),proj_argmax 的结果是整数索引(我理解的整数索引是,我分了15类,proj_argmax的shape是64*2048,proj_argmax的值是1到15的整数)

我把netTensorRT.cpp第93行的_hostBuffers[1]的值写进了txt文档,发现里面的值都是类似1.68156e-44,但是我注意到您的代码netTensorRT.cpp第101行 label_image[pixel_id] = ((int *) _hostBuffers[1])[pixel_id]把_hostBuffers[1]的值中的值转换成了整数索引。因为我分了15类,索引的结果只有0,3,6,12这几类,我排查了输入的点云没有错误,但是分割标签完全不对。博主有没有好的建议应该从哪些方面排查

cuda是10.2 tensorrt是8.2.1.8 请问解决了嘛 我也遇到了和您一样的问题, 值全是这个1.4013e-45,

Natsu-Akatsuki commented 10 months ago

话说你们是报了啥课程班么 :joy:

UyeYwb commented 10 months ago

话说你们是报了啥课程班么 😂

不知道,我是单纯转rt之后,结果异常了;排查不到原因