From c0fbfccbe9206f2e55180b61a435210754799ef8 Mon Sep 17 00:00:00 2001 From: mpj123 <1941804034@qq.com> Date: Fri, 6 Dec 2024 11:40:58 +0800 Subject: [PATCH] fix yolo11-seg and yolo11-pose engine cannot run after set batch > 1 --- yolo11/plugin/yololayer.cu | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/yolo11/plugin/yololayer.cu b/yolo11/plugin/yololayer.cu index c3ae07f7..54cdb895 100644 --- a/yolo11/plugin/yololayer.cu +++ b/yolo11/plugin/yololayer.cu @@ -251,6 +251,11 @@ __global__ void CalDetection(const float* input, float* output, int numElements, void YoloLayerPlugin::forwardGpu(const float* const* inputs, float* output, cudaStream_t stream, int mYoloV8netHeight, int mYoloV8NetWidth, int batchSize) { int outputElem = 1 + mMaxOutObject * sizeof(Detection) / sizeof(float); + if (is_segmentation_) { + outputElem = mMaxOutObject * (sizeof(Detection) - sizeof(float) * 51) / sizeof(float) + 1; + } else if (is_pose_) { + outputElem = mMaxOutObject * (sizeof(Detection) - sizeof(float) * 32) / sizeof(float) + 1; + } cudaMemsetAsync(output, 0, sizeof(float), stream); for (int idx = 0; idx < batchSize; ++idx) { CUDA_CHECK(cudaMemsetAsync(output + idx * outputElem, 0, sizeof(float), stream));