是否可以使用r torch包在CPU上转换for循环?

问题描述 投票:0回答:1

假设我有一些代码原本可以在CPU上运行,

BT <- NULL
for(t in c(1, 2, 3)){
        B_rt <- matrix(c(1, 2, 3, 4), 2, 2)

        BT <- rbind(BT, t(B_rt))  # update BT

}

我想知道这段代码是否可以使用 r torch 包进行转换。我尝试了以下:

BT <- list()
for(t in c(1, 2, 3)) {
  B_rt <- torch_tensor(matrix(c(1, 2, 3, 4), 2, 2), device = "cuda")
  
  BT[[t]] <- torch_t(B_rt)
  
}

# Concatenate tensors 
BT <- torch_cat(BT, dim = 0)

但是我说错了 “(function (tensors, dim) 中的错误:索引从 1 开始,但发现为 0。 调用: torch_cat ... call_c_function -> do_call -> do.call -> 执行停止”

非常感谢!

r for-loop torch
1个回答
0
投票

然后我尝试将

torch_cat
中的暗淡从 0 更改为 1

BT <- torch_cat(BT, dim = 1)

它给了我预期的结果

torch_tensor
 1  2
 3  4
 1  2
 3  4
 1  2
 3  4
[ CUDAFloatType{6,2} ]
© www.soinside.com 2019 - 2024. All rights reserved.