도배 하자 유형 분류 AI 경진대회

코랩 구동 inference 부분에서 에러 질문드립니다. (baseline model)

2023.05.19 10:29 1,848 Views

안녕하세요

baseline 모델 기반으로 개발 중인데 학습을 하고 추론하는 과정인

preds = inference(infer_model, test_loader, device)

이 부분에서 항상

TypeError: image must be numpy array type

식의 에러가 발생합니다.

현재 코랩에서 구동중이라 코랩드라이브에 마운트하여 사용중입니다. 구글링해보면 경로 문제로 생각되는데, 혹시나 해결 방법을 아시는 분이 계시다면 도움 부탁드리겠습니다

로그인이 필요합니다
0 / 1000
다냐니라
2023.05.19 11:04

삭제된 댓글입니다

Dovahkiin
2023.05.19 12:17

baseline 코드라면, 이미지를 읽어오지 않아서 생긴 문제로 보입니다.

image를 불러오는 과정의 경로를 확인해봐야겠죠? 

colab 이라면 google drive에서 읽어오실텐데, drive 경로를 확인해주세요.

daeinbangeu
2023.05.19 13:24

inference 이전까지, 라벨링 및 데이터 전처리 증강, train 까지도 해당 이미지들로 잘 작동됩니다. inference 부분만 안되어서 이상하게 생각하는 중입니다... test.csv 파일 위치는 train 폴더가 있는 곳에 같이 있습니다.

Dovahkiin
2023.05.19 14:12

test.csv 파일 위치가 아니라, csv 파일에 있는 이미지 파일의 경로를 확인하셔야죠.

train할 때와 다르게 csv 파일에서 경로를 읽어오실거잖아요?

daeinbangeu
2023.05.19 16:25

네 이것저것 시도해본 결과, 코랩 상에서는 test.csv 상의 맨처음 현재 경로인 ' . '이라는 상대경로를 인식하지 못해서 문제가 생겼던 것 같습니다.
test["img_path_real"] = test["img_path"].str.replace(".","/content/gdrive/My Drive/open/Codes/basic", 1)
test 이미지들이 있는 위치로 ' . ' 을 대체하는 위 구문을 추가하여 csv 파일을 수정하고 test_dataset 부분의 파라미터를
test_dataset = CustomDataset(test['img_path_real'].values, None, test_transform)
로 바꾸니 inference가 작동하는 것 같습니다.

답변 감사합니다.

kket
2023.06.04 18:10

같은 문제로 애먹고 있었는데, 덕분에 해결했습니다. 감사합니다 ~

MinhThangHUS
2023.05.19 15:23

def __getitem__(self, index):
        img_path = self.img_path_list[index]
        image = Image.open(img_path)
        image = np.array(image)
replace it in Class CustomDataset(Dataset):
I've noticed that some machines are experiencing the same issue.