[解決済み】pytorchでテンソルを平らにする方法は?
質問内容
多次元のテンソルがあるとき、それを平らにして一次元にするにはどうしたらよいか?
例
>>> t = torch.rand([2, 3, 5])
>>> t.shape
torch.Size([2, 3, 5])
どのように平らにすれば、形を持つようになるのでしょうか。
torch.Size([30])
解決方法は?
TL;DR:
torch.flatten()
使用方法
torch.flatten()
で紹介した
v0.4.1
でドキュメント化されています。
v1.0rc1
:
>>> t = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) >>> torch.flatten(t) tensor([1, 2, 3, 4, 5, 6, 7, 8]) >>> torch.flatten(t, start_dim=1) tensor([[1, 2, 3, 4], [5, 6, 7, 8]])
v0.4.1以前のバージョンでは
t.reshape(-1)
.
と
t.reshape(-1)
:
要求されたビューがメモリ上で連続している場合
と同じになります。
t.view(-1)
となり、メモリがコピーされなくなります。
そうでない場合は、以下と同等となります。
t.
contiguous()
.view(-1)
.
その他の非オプション
-
t.view(-1)
はメモリをコピーしませんが、元のサイズとストライドによっては動作しない場合があります。 -
t.resize(-1)
与えるRuntimeError
(以下参照) -
t.resize(t.numel())
低レベルメソッドであることに関する警告 (以下の議論を参照)
(注
pytorch
's
reshape()
はデータを変更することができますが
numpy
's
reshape()
はしない
.)
t.resize(t.numel())
は、少し議論が必要です。その
torch.Tensor.resize_
ドキュメンテーション
は言う。
ストレージは、現在のストライドを無視してC-contiguousとして再解釈される(ターゲットサイズが現在のサイズと等しい場合を除き、その場合テンソルは変更されないままである)。
現在のストライドが無視されることを考えると、新しい
(1, numel())
のサイズでは、要素の順序は
かもしれない
とは異なる順序で表示されます。
reshape(-1)
. ただし、"size"
かもしれない
はテンソルのサイズではなく、メモリサイズを意味する。
があればいいのですが。
t.resize(-1)
は、利便性と効率性の両方の観点から機能しますが
torch 1.0.1.post2
,
t = torch.rand([2, 3, 5]); t.resize(-1)
を与える。
RuntimeError: requested resize to -1 (-1 elements in total), but the given
tensor has a size of 2x2 (4 elements). autograd's resize can only change the
shape of a given tensor, while preserving the number of elements.
これについては、機能要望を上げました
こちら
が、コンセンサスは
resize()
は低レベルのメソッドであり
reshape()
を優先的に使用すべきです。
関連
-
[解決済み】pytorchでテンソルを平らにする方法は?
-
Pytorch-1-TX2にpytorchをインストール(自分でやったよ)
-
PytorchがNotImplementedErrorを発生させるようです。
-
ピトーチテンソルインデックス
-
AttributeError: 'Graph' オブジェクトには 'node' という属性がありません。
-
顔キーポイント検出(データ読み込み、処理)
-
Silve pil.unidentifiedimageerror: cannot identify image file
-
torch.nn.Conv1dと1次元畳み込みの説明
-
RuntimeError: CUDAエラー: 不正なメモリアクセスが発生しました。
-
[解決済み] Pytorch リシェイプテンソル次元
最新
-
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 ある割合で特定の値を持つランダムなint型テンソルを作成する方法は?例えば、25%が1で残りが0というような。
-
Pytorch-1-TX2にpytorchをインストール(自分でやったよ)
-
pytorchのSpeat()関数
-
torch.stack()の使用
-
torch.catとtorch.stackの違いについて
-
pytorchラーニングノート(XIV)。DataLoaderのソースコード読み込み
-
pytorch-DataLoader (データイテレータ)
-
ピトーチテンソルインデックス
-
AttributeError: 'Graph' オブジェクトには 'node' という属性がありません。
-
[解決済み] pytorchのreshapeとviewの違いは何ですか?