нет элемента с именем ‘KInt16’ в пространстве имен ‘torch’

#c #pytorch #libtorch

#c #pytorch #libtorch

Вопрос:

Я работаю над расширением cpp для pytorch и следовал официальному руководству, используя libtorch и cmake для компиляции программы. Но я столкнулся с проблемой создания тензора. Этот код может работать.

 #include <torch/torch.h>
#include <iostream>
int main(){
    std::vector<int64_t> test_data = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    torch::Tensor s = torch::from_blob(test_data.data(), {3, 3}, torch::kInt64);
    std::cout << "test case pass" << std::endl;
}
 

Но этот код не может работать.

 int main(){
    auto option = torch::TensorOptions().dtype(torch::KInt16);
    auto b = torch::zeros({2,3}, option);
    std::cout << "test case pass" << std::endl;
}
 

и журнал ошибок компиляции здесь.

 error: no member named 'KInt16' in namespace 'torch'; did you mean 'kInt16'?
 

Ответ №1:

Как явно указано в сообщении об ошибке, вы допустили опечатку: вы должны были написать torch::kInt16 вместо torch::KInt16 . k Не должно быть с заглавной буквы.