openCV::dnn 모듈은 다중 결과 신경망을 호출하고 오류는 풀기(예상 2, 1) 솔루션에 값이 충분하지 않습니다.

다중 예측을 달성하기 위해 UTKFace 데이터 세트에 대한 다중 작업 출력 네트워크 모델을 구축합니다. 이 데이터 세트에서 연령, 성별 및 인종을 예측합니다. 전체 링크 계층의 출력은 다음과 같습니다.

두 모델을 내보냅니다. 하나는 .pt 형식이고 다른 하나는 .onnx 형식입니다. 모델 배포에 pytorch의 torch.load()를 사용하면 문제가 없습니다. 하지만 onnx 모델을 opencv::dnn 모듈로 배포할 때 문제를 발견했습니다.

 .forward() 모듈은 하나의 반환 값만 가지고 있지만 모델은 세 개의 반환 값을 가지고 있음을 보여주고 있는데, .forward()의 결과를 출력해보니 마지막으로 예측한 결과만 출력되는 것을 확인할 수 있었습니다. 처음 두 개는 모듈에 의해 삼켜집니다. . .

다시 파이썬 환경에서 여러 번 시도한 다음 C++ 환경에서 호출했지만 여전히 작동하지 않는 것을 발견했습니다.

최종 처리 결과 모델의 출력을 변경했습니다.

최종 출력의 3개 텐서를 하나로 결합

나중에 예측 결과를 처리할 때 3개의 결과로 분할됩니다.

 

해결할 수 있고 이단으로 간주됩니다.

Supongo que te gusta

Origin blog.csdn.net/qq_35326529/article/details/127721341
Recomendado
Clasificación