Converter.py 에러 문의

안녕하세요 onnx 모델을 converter.py 함수를 이용하여 .enlight로 변환하는 과정에서 발생한 오류 문의 드립니다.


변환하고자 하는 onnx 파일에 reducemean과 sqrt operation이 안되는 것 같은데, 이를 해결할 방법이 저 연산을 다른 연산으로 대체하여 다시 만드는 방법 뿐인지 아니면 다른 방법이 있는지 문의드립니다.

image
문제가되는 레이어를 지우고 convert를 수행하였을 때의 캡쳐본입니다.

감사합니다.

안녕하세요.

해당 문의에 답변 드립니다.
enlight tool을 사용하여 돌리신 모델 ufldv2는 officially 지원되지 않습니다.
openedges_enlight_v2.0_npu_swtoolkitmanual_telechips_general_r1.f 의 APPENDIX::A Layer Type and Operators 에 기술되어 있는 layer 이외에는 지원하지 않습니다.
Enlight NPU :: Model Zoo 는 NPU 에서 지원하는 신경망 model zoo 입니다. 이 model-zoo 에 있는 신경망 구조를 참고 하여 신경망 파일을 생성해야 toolkit에서 쉽게 지원 가능합니다.

감사합니다.

네 답변 감사합니다. 그래서 지원되지 않는 layer를 제거하고 다시 convert 하였으나 아래 그림과 같이

‘data’
Converter: error occurs.

오류가 떴습니다.


해당 문제도 지원되지 않는 layer 때문인걸까요?

통상적인 경우 지원되지 않는 layer를 사용했기 때문에 발생하는 문제입니다.
지원되는 layer를 참조하여 진행 부탁드립니다.

지원되지 않는 layer 삭제후 convert까진 완료 했습니다.
후에 quantize 진행과정에서 오류가 발생하여 문의드립니다.

netron으로 현재 network의 구조를 전달해주실 수 있을까요??
추가적으로 convert돌린 모델 공유 부탁 드립니다.

https://drive.google.com/drive/folders/1pCw-M61FnirF5bPaxoiex9aqSfijZEsV?usp=drive_link

공유드립니다.

converting 돌리신 ufldv2.onnx 파일도 공유 부탁드립니다.

https://drive.google.com/drive/folders/1pCw-M61FnirF5bPaxoiex9aqSfijZEsV?usp=drive_link

공유드립니다

아직 확인이 안됐을까요? 답변 기다리겠습니다.
감사합니다.

답변이 늦은 점 양해 부탁드립니다.
현재 확인 중에 있습니다. 확인이 끝난 후 답변 드리겠습니다.

감사합니다.

안녕하세요.
image
신경망 중간에 위치한 Reshape는 지원하지 않습니다. 해당 부분의 Reshape부터 아래 부분을 코드로 작성하셔야합니다.
또한 매우 큰 연산이 필요하여 NPU HW 처리 시간이 매우 높게 나오니 , 신경망 입력크기 1600 x 320 크기를 줄일 필요가 있습니다.

감사합니다.

네 답변 감사합니다.
model zoo 사이트에서 확인해본 결과 ufld v1 input 사이즈가 800x288로 되어 있던데, 800x320 사이즈 정도로 줄이면 괜찮을까요? 보드의 메모리 크기를 알려주시면 제가 계산해서 적절한 사이즈를 찾아보겠습니다.

감사합니다.

안녕하세요.
해당 문의에 답변 드립니다.

available memory의 크기는 889Mi입니다.

감사합니다.

말씀해주신대로 일단 reshape 이후의 레이어는 제거한 후에 convert와 quantize 까지 완료했지만 compile 단계에서 아래와 같은 상태에서 몇 시간동안 멈춰있는 상황입니다. 또 어떤 문제가 있는지 확인 부탁드립니다.


감사합니다.

reshape이후의 레이어가 제거된 모델 파일 전달 부탁 드립니다.

https://drive.google.com/drive/folders/1pCw-M61FnirF5bPaxoiex9aqSfijZEsV?usp=drive_link

공유드립니다.

확인 후 답변 드리겠습니다.
감사합니다.

안녕하세요.

Conv2d 입력의 최대 width는 1028 입니다. 1600를 1024 이하로 줄여야 합니다.

그리고 첫번째 layer Conv 7x7과 MaxPool 3x3은 매우 느린 연산입니다.
Inference 시간 단축을 위해 다음과 같이 변경 제안 드립니다.

  • Conv 7x7 → 2개의 Conv 3x3
  • MaxPoox 3x3 → MaxPool 2x2

감사합니다.