[解決済み] PyTorchの "view "メソッドはどのように動作するのですか?
質問
メソッドについて混乱しています。
view()
を、以下のコードに追加してください。
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = nn.Conv2d(3, 6, 5)
self.pool = nn.MaxPool2d(2,2)
self.conv2 = nn.Conv2d(6, 16, 5)
self.fc1 = nn.Linear(16*5*5, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)
def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 16*5*5)
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x
net = Net()
私が混乱しているのは、次の行についてです。
x = x.view(-1, 16*5*5)
とは何ですか?
tensor.view()
関数は何をするのですか?いろいろなところでその使い方を見かけますが、パラメータをどう解釈しているのかがわかりません。
にパラメータとして負の値を与えるとどうなるか?
view()
関数を使うことができますか?例えば、私が呼び出したらどうなるのでしょう。
tensor_variable.view(1, 1, -1)
?
の主な原理を説明できる人はいますか?
view()
関数の例を挙げてください。
どのように解決するのですか?
ビュー関数はテンソルの形状を変更するためのものである。
テンソルがあるとします
import torch
a = torch.range(1, 16)
a
は1から16(含む)までの16個の要素を持つテンソルである。もし、このテンソルを整形して
4 x 4
テンソルを使用します。
a = a.view(4, 4)
現在
a
は
4 x 4
テンソルです。
なお、再形成後も要素の総数は同じである必要がある。テンソルのリシェイプ
a
から
3 x 5
テンソルは適切ではありません。
パラメータ -1 の意味を教えてください。
行数は分からないが、列数は間違いない、という状況があれば、-1で指定することができます( なお、これをより多くの次元のテンソルに拡張することができます。軸の値のうち1つだけが-1であることができる ). これはライブラリに次のように伝える方法である: "これらの多くの列を持つテンソルを与え、あなたはこれを実現するために必要な適切な行の数を計算する"。
これは、上にあげたニューラルネットワークのコードを見ればわかることです。行の後
x = self.pool(F.relu(self.conv2(x)))
は、16 個の深度特徴マップを生成します。これを全結合層に渡すには、平坦化する必要があります。そこで、pytorchに、得られたテンソルを特定の列数になるように整形し、行数を自分で決めるように指示します。
numpyとpytorchの類似性を描画する。
view
は、numpyの
リシェイプ
という関数があります。
関連
-
Pythonによるjieba分割ライブラリ
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] リストの要素数を取得する方法
-
[解決済み] C言語で配列のサイズを決定するにはどうすればよいですか?
-
[解決済み] Pythonの@propertyデコレーターはどのように機能するのでしょうか?
-
[解決済み] Pythonのsuper()は多重継承でどう動くのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python カメの描画コマンドとその例
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
任意波形を生成してtxtで保存するためのPython実装
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")