안녕하세요. 에티버스 김인성 연구원입니다.
SSDMobileNet 추론 예제 코드 실행하다가 발생한 오류를 해결하지 못해 문의 드립니다.
사용한 코드는 아래와 같습니다. (SSD MobileNet v1 - Furiosa Models)
from furiosa.models.vision import SSDMobileNet
from furiosa.runtime.sync import create_runner
image = ["tests/assets/cat.jpg"]
mobilenet = SSDMobileNet()
with create_runner(mobilenet.model_source()) as runner:
inputs, contexts = mobilenet.preprocess(image)
outputs = runner.run(inputs)
mobilenet.postprocess(outputs, contexts[0])
발생한 오류 내용은 아래와 같습니다.
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
Cell In[23], line 15
---> 15 mobilenet.postprocess(outputs, contexts[0])
File ~/miniconda3/envs/furiosa-3.9/lib/python3.9/site-packages/furiosa/models/types.py:133, in Model.postprocess(self, *args, **kwargs)
131 def postprocess(self, *args, **kwargs):
132 """Postprocess output tensors"""
--> 133 return self.postprocessor(*args, **kwargs)
File ~/miniconda3/envs/furiosa-3.9/lib/python3.9/site-packages/furiosa/models/vision/ssd_mobilenet/__init__.py:316, in SSDMobileNetNativePostProcessor.__call__(self, model_outputs, contexts)
314 return [[]]
315 batch_size = model_outputs[0].shape[0]
--> 316 assert batch_size == len(
317 contexts
318 ), "batch size of model_outputs and len(contexts) must be same"
320 all_results = []
322 for i, context in enumerate(contexts):
AssertionError: batch size of model_outputs and len(contexts) must be same
입력과 출력의 정보는 아래와 같습니다.
inputs shape → (1, 3, 300, 300)
contexts → {‘width’: 300, ‘height’: 300}
outputs shape → (1, 273, 19, 19)
제가 놓친 부분이 어디인지, 어떤 조치를 취해야 할지 잘 모르겠습니다.
확인 부탁 드립니다.
감사합니다.