2016-04-26 40 views
1

我想要變平任何一般n-dimensional torch.Tensor但在計算優化的方式。 (所謂「壓扁」在這裏,我的意思是一個給定的張量變換爲具有相同數量的元素作爲給定矢量的一維的張量)。我使用以下步驟目前這樣做: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()) 

我相信它效率稍低,因爲:cuda()將這個新的張量從內存推到GPU。有人可以請建議一個更有效的方式來做到這一點?

在此先感謝。

回答

0

這不是用重塑命令解決嗎? 見documentationexample

我假設你知道如何抓住的original_tensor尺寸。將它們相乘得到矢量大小。

local my_vector = nn.reshape(vector_size, original_vector) 

我錯過了什麼嗎?這仍然不夠有效嗎?它應該是一個高度平行的分配。