NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty() instead of torch.nn.Module.to() when moving module from meta to a different device.
·
Error Note
[문제 상황] python 멀티 스레드 실행시, model을 .to('cpu') 또는 .to('cuda')등 모델을 cpu나 gpu에 올릴때 발생하는 에러입니다. (멀티스레드로 실행하지 않으면 에러 발생하지 않음) [문제 원인] 메타로 만들어진 모듈을 아직 실제 텐서로 채우기 전에 .to()를 호출하는 코드 경로가 스레드에서만 발생하기 때문이에요. 보통 아래 패턴들 때문에 스레드 경로에서만 메타가 남습니다. - 왜 스레드에서만 메타 텐서가 남을까? 모델 생성/로드 순서가 스레드와 메인에서 다름메인 스레드: from_pretrained(..., low_cpu_mem_usage=False) 처럼 바로 실제 텐서로 초기화 → .to() 가능워커 스레드: from_pretrained(..., low_cpu_m..
[OpenCV] error: (-215:Assertion failed) cn == CV_MAT_CN(dstType) && ddepth >= sdepth in function 'getLinearFilter'
·
Error Note
- 전체 에러 문구   cv2.error: OpenCV(4.9.0) /io/opencv/modules/imgproc/src/filter.simd.hpp:3231: error: (-215:Assertion failed) cn == CV_MAT_CN(dstType) && ddepth >= sdepth in function 'getLinearFilter'  OpenCV에서 seamlessClone함수 사용시 발생 할 수 있는 에러인데요.seamlessClone()의 파라미터로 주어지는 mask와 src 이미지의 데이터 타입이 달라 발생합니다.두 개의 데이터 타입을 맞춰주면 됩니다.  - 해결방법   mask = mask.astype(np.uint8)
ValueError: assignment destination is read-only
·
Error Note
- 전체 에러 문구   ValueError: assignment destination is read-only numpy 행렬의 값을 변경하려고 할 때 발생하는 에러입니다.  - 해결방법  아래처럼 ori_np.setflags(write=1) 로 속성을 변경해주면 됩니다.ori_np=ori_np.copy()ori_np.setflags(write=1)
Missing key(s) in state_dict: "clip_model.vision_tower.vision_model.embeddings.position_ids".
·
Error Note
- 전체 에러문구 Missing key(s) in state_dict: "clip_model.vision_tower.vision_model.embeddings.position_ids".  pretrain 모델을 load_state_dict를 사용하여 업로드 할 때 모델의 구조가 맞지 않아 발생하는 에러입니다.  - 해결방법 load_state_dic 함수의 파라미터로 strict=False 를 추가해주면 됩니다.model.load_state_dict(ckpt, strict=False) 이 파라미터를 추가해주면 모델을 불러올 떄 불러올 수 있는 값들만 유동적으로 불러올 수 있습니다.