[error] UnboundLocalError: local variable 'inputs' referenced before assignment

2024. 9. 10. 16:22개인활동/기타

 

OWLv2 모델을 불러오는 과정에서 발생한 에러,

함수 형태로 코드를 구현해 돌리는 과정이었는데, inputs라는 변수에서 문제가 발생했다고 한다.

 

GPT와 씨름하고 구글링해본 결과 얻은 결론은,

else 문에서 inputs라는 변수가 정의되는 과정에서 문제가 발생한 것으로 보인다.

else:
    # input image & text to OWLv2
    inputs = self.owlv2_processor(text=text_prompt, images=image_pil, return_tensors="pt")
    inputs = {k: v.to(self.device) for k, v in inputs.items()}
	...

 

그래서 함수 맨 첫부분에 inputs = None으로 정의하는 과정을 통해 해결하였다.

 def predict_owlv2(self, image_pil, image_path, text_prompt, box_threshold=0.3, text_threshold=0.25):
      inputs = None
      try:
          ...

 

여기서 try문 안쪽에 정의를 하는 경우에도 에러가 났는데..

왤까?

 

일단은 해결이 되어서 넘어가긴 했지만 궁금해진다.