모델 학습이 끝났으므로 모델을 이용하여 테스트 데이터셋을 예측해 보겠습니다.
코드 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 파일에 저장