ここではまったくの初心者ですが、私は this pytorch SegNet実装を使用しており、50エポックのトレーニングからの重みを含む「.pth」ファイルを使用しています。単一のテスト画像をロードして、正味の予測を確認するにはどうすればよいですか?これはばかげた質問のように聞こえるかもしれませんが、行き詰まっています。私が持っているのは:
from segnet import SegNet
import torch
model = SegNet(2)
model.load_state_dict(torch.load('./model_segnet_Epoch50.pth'))
1つのテスト画像でネットを「使用」するにはどうすればよいですか?
output = model(image)
。
画像はVariable
オブジェクトである必要があり、出力も同様であることに注意してください。たとえば、画像がNumpy配列の場合、次のように変換できます。
var_image = Variable(torch.Tensor(image))
ResNet152
事前トレーニング済みモデルの例を提供します。
def image_loader(loader, image_name):
image = Image.open(image_name)
image = loader(image).float()
image = torch.tensor(image, requires_grad=True)
image = image.unsqueeze(0)
return image
data_transforms = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor()
])
model_ft = models.resnet152(pretrained=True)
model_ft.eval()
print( np.argmax(model_ft(image_loader(data_transforms, $FILENAME)).detach().numpy()))
$FILENAME
は、ロードする画像のパスと名前です。私はこれから必要な助けを得ました 投稿 。