我希望压扁任何一般的 n - 维度torch.Tensor
,但这是以计算优化的方式。 (在这里“扁平化”,我的意思是将给定的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()
将这个新的Tensor从内存推送到GPU,因此效率稍低。有人可以建议一种更有效的方法吗?
提前致谢。
答案 0 :(得分:2)
典型的方法是创建一个视图(因此实际上不会重新调整张量)。
x:view(x:nElement())
直接来自官方的“numpy用户的火炬”https://github.com/torch/torch7/wiki/Torch-for-Numpy-users
答案 1 :(得分:0)
这不是用重塑命令解决的吗? 请参阅documentation和此example
我假设您知道如何获取 original_tensor 的尺寸。将它们相乘以得到矢量大小。
[{
id: 1,
name: "5637(LCL-1702)",
cellId: 3,
createdAt: "2016-05-09T18:57:04.256Z",
updatedAt: null,
cell: {}
}, {
id: 2,
name: "A-375",
cellId: 6,
createdAt: "2016-05-09T18:57:04.263Z",
updatedAt: null,
cell: {}
}, {
id: 3,
name: "AU-565",
cellId: 11,
createdAt: "2016-05-09T18:57:04.273Z",
updatedAt: null,
cell: {}
}, {
id: 4,
name: "CaSki",
cellId: 19,
createdAt: "2016-05-09T18:57:04.290Z",
updatedAt: null,
cell: {}
}, {
id: 5,
name: "HCC-1395",
cellId: 37,
createdAt: "2016-05-09T18:57:04.340Z",
updatedAt: null,
cell: {}
}]
我错过了什么吗?这还不够有效吗?它应该是一个高度并行的任务。