더북(TheBook)

모델 학습이 끝났으므로 모델을 이용하여 테스트 데이터셋을 예측해 보겠습니다.

코드 6-35 모델을 이용한 예측

import pandas as pd
id_list = []
pred_list = []
_id = 0
with torch.no_grad():
    for test_path in tqdm(test_images_filepaths): ------ 테스트 이미지 데이터 이용
        img = Image.open(test_path)
        _id = test_path.split('/')[-1].split('.')[1] ------ 이미지 데이터의 번호 가져오기(예를 들어 dog.113.jpg라는 이미지 이름에서 113 가져오기)
        transform = ImageTransform(size, mean, std)
        img = transform(img, phase='val') ------ 테스트 데이터에 검증용 전처리 적용
        img = img.unsqueeze(0)
        img = img.to(device)

        model.eval()
        outputs = model(img)
        preds = F.softmax(outputs, dim=1)[:, 1].tolist()

        id_list.append(_id)
        pred_list.append(preds[0])

res = pd.DataFrame({
    'id': id_list,
    'label': pred_list
}) ------ 데이터 프레임에 이미지의 id(번호)와 레이블 저장
res.to_csv('../chap06/data/alexnet.csv', index=False) ------ 이미지의 id와 레이블을 alexnet.csv 파일에 저장
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.