単一の画像を用いPytorch試験(pytorchとテスト単一の画像)

pytorch試験画像を使用して、次のコード

記事を引用:

https://www.learnopencv.com/pytorch-for-beginners-image-classification-using-pre-trained-models/

__future__インポートprint_functionから、除算

PILのインポートイメージから
輸入トーチ
torchvisionインポート変換から
PLTとしてインポートmatplotlib.pyplot


plt.ion()#インタラクティブモード

#イメージパス
save_path = '/home/guomin/.cache/torch/checkpoints/resnet18-customs-angle.pth'

#ロードデータ----------------------- ------------------------ ----#
訓練のための#データの増強および正規化
検証のための#だけの正規化
#事前定義された変換トレーニング
preprocess_transform = transforms.Compose([
        transforms.Resize(256)、
        transforms.CenterCrop(224)、
        transforms.ToTensor()、
        transforms.Normalize([0.485、0.456、0.406]、[0.229、0.224、0.225])
    ])

class_names = [ '0'、 '180'、 '270'、 '90']

デバイス= torch.device( "CUDA:0"(torch.cuda.is_available場合)他の "CPU")

#モデルとトレーニングをロード------------------------ -------------------- -------#
モデル= torch.load(save_path)
model.eval()
#プリント(モデル)

image_PIL = Image.open( 'image.jpg')
image_tensor = preprocess_transform(image_PIL)
#次の文は、image_tensor = torch.unsqueeze(image_tensor、0)に相当します
image_tensor.unsqueeze_(0)
#この文はありません文句を言うでしょう
image_tensor = image_tensor.to(デバイス)

アウト=モデル(image_tensor)
#予測と降順を取得
_、インデックス= torch.sort(OUT、降順= TRUE)
#各予測のパーセント値を返します。
パーセンテージ= torch.nn.functional.softmax(OUT、DIM = 1)[0] * 100

プリント([インデックスでIDX用(class_names [IDX]、パーセント[IDX] .item())[0] [5])

 結果が返されました:

[('270', 99.9299545288086), ('90', 0.06985548883676529), ('0', 0.0001458235055906698), ('180', 4.714601891464554e-05)]

おすすめ

転載: www.cnblogs.com/ttweixiao-IT-program/p/11977884.html