質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1799閲覧

Pytorch net(x)の中身

chgrios

総合スコア70

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/08/28 10:03

いま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>)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

torchvision.modelsの分類器の出力は基本的に (batch size) x (number of class) となっています.

今回でいうと,
おそらくbatch sizeを8で指定していて,
クラス数がtaco or burritoの2つなので,
8 x 2のtensorが出力されているものと思われます.

投稿2019/08/29 08:08

tanimutomo

総合スコア88

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問