0
:narrow
を使用してコピーを作成する必要はありませんか?私。 :resize
は、:reshape
のインプレースバージョンですが、これに相当するのは狭いですか?トーチ - メモリコピーなしの狭い()
:narrow
を使用してコピーを作成する必要はありませんか?私。 :resize
は、:reshape
のインプレースバージョンですが、これに相当するのは狭いですか?トーチ - メモリコピーなしの狭い()
ドキュメントに記載されているように、narrow
はメモリコピーを実行しません:
narrow
については
、
select
とsub
返さテンソルは、オリジナルと同じStorage
を共有しています。したがって、サブテンソルのメモリ内の任意の修正は、第1テンソルに影響を及ぼし、その逆もあり得る。これらのメソッドは非常に高速です。にはメモリコピーが含まれていません。
例:
th> x = torch.Tensor{{1, 2}, {3, 4}}
th> y = x:narrow(1, 2, 1)
th> print(x:storage():data())
cdata<double *>: 0x0079f240
th> print(y:storage():data())
cdata<double *>: 0x0079f240
彼らは唯一の新しいテンソルを返す、つまり舞台裏同じストレージを使用する新しいオブジェクト。
あなたは本当にあなたがset
を使用することができますインプレース元テンソルを変更する場合:
th> x:set(y)
3 4
[torch.DoubleTensor of size 1x2]
それともx = y
さらに簡単。