torch7:如何展平张量?

torch7: How to flatten a Tensor?

我想展平任何一般的ntorch.Tensor,但以一种计算优化的方式。 (这里 "flatten" 的意思是将给定的 Tensor 转换为与给定向量具有相同数量元素的一维 Tensor。)我目前正在使用以下步骤来执行此操作:

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。有人可以建议更有效的方法吗?

提前致谢。

这不是用reshape命令解决了吗? 参见 documentation and this example

我假设您知道如何获取 original_tensor 的维度。将它们相乘得到矢量大小。

local my_vector = nn.reshape(vector_size, original_vector)

我错过了什么吗?这还不够有效吗?应该是一个高度并行的作业。

典型的方法是创建一个视图(因此实际上不会重塑张量)。

x:view(x:nElement())

直接来自官方"torch for numpy users"https://github.com/torch/torch7/wiki/Torch-for-Numpy-users