我正在使用 Torch C++ 前端,并希望在其中有一个具有指定值的张量。要实现这一点,可以手动分配内存并设置值,然后使用torch::from_blob
在内存块上构建张量,但对我来说似乎不够干净。
在本文档的最底部,我发现可以使用下标直接访问和修改数据。但是,这种方法的运行时间开销很大,可能是因为下标访问会将张量的元素视为 0-d 张量。以下代码在我的机器上将花费超过 2 秒(-O3
优化级别),这对于现代 CPU 来说太长了。
torch::Tensor tensor = torch::empty({1000, 1000});
for(int i=0; i < 1000; i++)
{
for(int j=0 ; j < 1000; j++)
{
tensor[i][j] = calc_tensor_data(i,j);
}
}
有没有一种干净快速的方法来实现这个目标?