いまPytorchmの勉強をしていて、ResNetの転移学習でフォルダにそれぞれが格納されたタコスとブリトーを分類するというチュートリアルをやっています。そこで以下のコードのout = net(x) というコードなんですが、これが予測値を意味することは書いてあったのですが、outテンソルのサイズを見ると(8,2)となっており、この8の数字がなにを意味するか、またそれぞれ一列目と二列目の値がそれぞれ具体的なにを意味するのかがわかりません。ディープラーニング初心者ですが、LossやAccなどの概念はわかっていると思います。このoutからどういう数字でどのようにLossやAccらを算出するのですか?
python
1from torchvision.datasets import ImageFolder 2from torchvision import transforms 3from torch.utils.data import DataLoader 4import os.path as osp 5from torchvision import models 6import torch.nn as nn 7 8net = models.resnet18(pretrained=True) 9 10path = 'taco_and_burrito' 11train = ImageFolder(osp.join(path, 'train'), 12 transform=transforms.Compose([ 13 transforms.RandomCrop(224), 14 transforms.ToTensor() 15])) 16test = ImageFolder(osp.join(path,'test'), 17 transform=transforms.Compose([ 18 transforms.CenterCrop(224), 19 transforms.ToTensor() 20 ])) 21train_dl = DataLoader(train, batch_size=32, shuffle=True) 22test_dl = DataLoader(test, batch_size=32, shuffle=False) 23 24for p in net.parameters(): 25 26 27 p.requires_grad=False 28 29 fc_input = net.fc.in_features 30 net.fc = nn.Linear(fc_input, 2) 31 32for epoch in range(5): 33 for x, y in train_dl: 34 out = net(x) 35
参考outの値とshape
out.shape >>torch.Size([8, 2] out >>tensor([[ 0.6871, -1.0597], [-0.0682, -0.3458], [ 0.1512, -1.0901], [ 0.6089, -1.2450], [ 0.6215, -1.3786], [ 0.1508, -0.5673], [ 0.2501, -1.2930], [ 0.1626, -1.5242]], grad_fn=<AddmmBackward>)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。