2016-04-26 7 views
1

私はflatten任意の一般n-次元torch.Tensorに計算して最適化されています。 (ここで「平坦化」することで、Iは、与えられたベクトルと同じ数の要素を持つ一次元テンソルに与えられたテンソルの変換を意味する。)私はこれを行うには、現在、以下の手順を使用しています:torch7:テンソルを平らにする方法は?

local original_tensor = -- output of some intermediate layer of a conv-net residing in the GPU 
local shaping_tensor = torch.Tensor(original_tensor:nElement()) 
original_tensor = original_tensor:resizeAs(shaping_tensor:cuda()) 

私はそれがメモリからGPUにこの新しいテンソルをプッシュ:cuda()のためにわずかに非効率的だと信じています。誰かがこれを行うより効率的な方法を提案してもらえますか?

ありがとうございます。

答えて

0

これはreshapeコマンドで解決していませんか? 私はあなたがoriginal_tensorの寸法をつかむ方法を理解していることを前提とdocumentationと、このexample

を参照してください。これらを掛け合わせると、ベクトルサイズが得られます。

local my_vector = nn.reshape(vector_size, original_vector) 

私には何か不足していますか?これはまだ十分効率的ではありませんか?それは非常に並行した割り当てでなければなりません。

関連する問題