② clip()은 입력 값이 주어진 범위를 벗어날 때 입력 값을 특정 범위로 제한시키기 위해 사용합니다. 즉, image.clip(0, 1)은 image 데이터를 0과 1 사이의 값으로 제한하겠다는 의미입니다. 다음 예시를 통해 사용 방법을 익혀 보세요.
> import numpy as np > exam = np.array([-1.8, -1.2, -0.7, 0.0, 0.8, 1.4, 1.9]) > print(exam) > print(np.clip(exam, -0.5, 0.5)) [-1.8 -1.2 -0.7 0. 0.8 1.4 1.9] [-0.5 -0.5 -0.5 0. 0.5 0.5 0.5]
이제 테스트 데이터셋을 이용하여 실제로도 개와 고양이를 잘 분류하는지 살펴보겠습니다.
코드 5-29 개와 고양이 예측 결과 출력
classes = {0:'cat', 1:'dog'} ------ 개와 고양이 두 개에 대한 레이블
dataiter = iter(test_loader) ------ 테스트 데이터셋을 가져옵니다.
images, labels = dataiter.next() ------ 테스트 데이터셋에서 이미지와 레이블을 분리하여 가져옵니다.
output = model(images)
_, preds = torch.max(output, 1)
fig = plt.figure(figsize=(25,4))
for idx in np.arange(20):
ax = fig.add_subplot(2, 10, idx+1, xticks=[], yticks=[]) ------ ①
plt.imshow(im_convert(images[idx])) ------ 이미지 출력을 위해 코드 5-28에서 정의한 im_convert 함수를 적용
a.set_title(classes[labels[i].item()])
ax.set_title("{}({})".format(str(classes[preds[idx].item()]), str(classes[labels[idx].
item()])), color=("green" if preds[idx]==labels[idx] else "red")) ------ ②
plt.show()
plt.subplots_adjust(bottom=0.2, top=0.6, hspace=0) ------ ③