J'essaie de convertir le code Python suivant en son équivalent libtorch :
tfm = np.float32([[A[0, 0], A[1, 0], A[2, 0]],
[A[0, 1], A[1, 1], A[2, 1]]
])
Dans Pytorch, nous pourrions simplement utiliser torch.stack
ou simplement utiliser un torch.tensor()
comme ci-dessous :
tfm = torch.tensor([[A_tensor[0,0], A_tensor[1,0],0],
[A_tensor[0,1], A_tensor[1,1],0]
])
Cependant, dans libtorch, cela ne tient pas, c'est-à-dire que je ne peux pas simplement faire :
auto tfm = torch::tensor ({{A.index({0,0}), A.index({1,0}), A.index({2,0})},
{A.index({0,1}), A.index({1,1}), A.index({2,1})}
});
ou même en utilisant un std::vector
ne fonctionne pas. Il en va de même pour torch::stack. J'utilise actuellement trois torch::stack
pour y arriver :
auto x = torch::stack({ A.index({0,0}), A.index({1,0}), A.index({2,0}) });
auto y = torch::stack({ A.index({0,1}), A.index({1,1}), A.index({2,1}) });
tfm = torch::stack({ x,y });
Existe-t-il une meilleure façon de procéder ? Peut-on le faire en utilisant une ligne unique ?