Chapter 04

テスト

sosa
sosa
2023.01.30に更新
classes = [
    "setosa",
    "versicolor",
    "virginica"
    # "T-shirt/top",
    # "Trouser",
    # "Pullover",
    # "Dress",
    # "Coat",
    # "Sandal",
    # "Shirt",
    # "Sneaker",
    # "Bag",
    # "Ankle boot",
]

model.eval()
x, y = test_data[0][0], test_data[0][1]
with torch.no_grad():
    pred = model(x)
    #クイックスタートはモデルの最終段がReLUでpredが[[]]、
    #今回作ったものはモデルの最終段がLinearなのでpredは[]になっていた。
    #理由はわからないが今回作ったものはpred[0]ではエラーになる。
    # predicted, actual = classes[pred[0].argmax(0)], classes[y]
    predicted, actual = classes[pred.argmax(0)], classes[y]

    print(f'Predicted: "{predicted}", Actual: "{actual}"')

最後にテストデータ30個全部試してみます。

ok=0
ng=0
for i in range(len(test_data)):
    x, y = test_data[i][0], test_data[i][1]
    # print(x,y)
    with torch.no_grad():
        pred = model(x)
        # predicted, actual = classes[pred[0].argmax(0)], classes[y]
        # print(pred)
        # print(pred.argmax(0))
        predicted, actual = classes[pred.argmax(0)], classes[y]
        if predicted == actual:
            result='OK!'
            ok+=1
        else:
            result='NG'
            ng+=1
        print(f'Predicted: "{predicted}", Actual: "{actual}",result:"{result}"')
print(f'OK:"{ok}",NG:"{ng}"')

テスト結果は30個中28個正解2個不正解でした。