[解決済み] pytorchのreshapeとviewの違いは何ですか?
質問
numpyでは
ndarray.reshape()
を使用して配列の形状を変更します。
私は、pytorchでは、人々が
torch.view(...)
を使用すると、同じ目的で、同時に
torch.reshape(...)
が存在する。
そこで気になるのが、両者の違いや、どちらを使うべきかということです。
どのように解決するのですか?
torch.view
は以前から存在していました。これは新しい形状を持つテンソルを返す。返されたテンソルは、元のテンソルと下位のデータを共有する。
を参照。
のドキュメントはこちら
.
一方、どうやら
torch.reshape
は、最近バージョン0.4で導入された
. によると
ドキュメント
の場合、このメソッドは
input と同じデータ、同じ要素数で、指定された形状のテンソルを返す。可能な場合、返されるテンソルは入力のビューである。そうでなければ、コピーである。連続した入力と互換性のあるストライドを持つ入力はコピーせずに形状を変更できるが、コピーとビューの動作に依存してはならない。
という意味です。
torch.reshape
は、元のテンソルのコピーまたはビューを返すかもしれない。ビューを返すかコピーを返すかはあてにならない。開発者によると
コピーが必要な場合はclone()を、同じストレージが必要な場合はview()を使用してください。reshape()のセマンティクスは、ストレージを共有するかしないかであり、事前に知ることはできない。
もう一つの違いは
reshape()
は連続したテンソルでも非連続のテンソルでも操作できるのに対して
view()
は連続したテンソルに対してのみ操作できる。また
こちら
の意味について
contiguous
.
関連
-
pytorch学習におけるtorch.squeeze()とtorch.unsqueeze()の使用法
-
torch.stack()の公式解説、詳細、例題について
-
torch.catとtorch.stackの違いについて
-
pytorch-DataLoader (データイテレータ)
-
AttributeError: 'Graph' オブジェクトには 'node' という属性がありません。
-
pytorchにおける次元とそのsqueeze()、unsqueeze()関数の理解
-
顔キーポイント検出(データ読み込み、処理)
-
EOFError: 入力がなくなった
-
Silve pil.unidentifiedimageerror: cannot identify image file
-
pytorchのマルチGPU利用 - #CUDA_VISIBLE_DEVICES use #torch.nn.DataParallel() #エラー解決
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】pytorchでテンソルを平らにする方法は?
-
[解決済み] PyTorch - contiguous()は何をするのですか?
-
[解決済み] Pytorch ある割合で特定の値を持つランダムなint型テンソルを作成する方法は?例えば、25%が1で残りが0というような。
-
PytorchがNotImplementedErrorを発生させるようです。
-
torch.catとtorch.stackの違いについて
-
PyTorchのF.cross_entropy()関数
-
pytorchのConv1dの詳細説明
-
pytorchのマルチGPU利用 - #CUDA_VISIBLE_DEVICES use #torch.nn.DataParallel() #エラー解決
-
[解決済み] Pytorch リシェイプテンソル次元
-
[解決済み] 連続配列と非連続配列の違いは何ですか?