tensor和slice的内存问题
Created by: MaxwellDing
测试yolov3网络,当batchsize大于1时,出现段错误,经使用sanitizer检查,发现multiclassnms存在heap buffer overflow。 错误原因:multiclassnms中进行nms运算时会按n方向使用slice接口拆分,内存浅拷贝,但由于tensor内存是lazy malloc的,在拆分tensor时并没有malloc,拆分开的每一个tensor单独进行malloc,导致内存踩踏,每次报错不一,有double free, invalid next size,corrupted double-linked list,smallbin double linked list corrupted等 workarround:在拆分tensor之前调用mutable_data进行malloc,不再出错 推荐后面处理一下tensor与slice共享内存的逻辑