Скопируйте GpuMat в CUDA Tensor - PullRequest
       13

Скопируйте GpuMat в CUDA Tensor

0 голосов
/ 04 декабря 2018

Я пытаюсь выполнить вывод модели в C ++.
Я успешно проследил модель в Python с помощью torch.jit.trace.
Я могу загрузить модель в C ++, используя torch::jit::load().
Я смогВыполните вывод как на процессоре, так и на процессоре, но отправной точкой всегда был метод torch::from_blob, который, кажется, создает тензор на стороне процессора.
Для эффективности я хотел бы преобразовать / скопировать cv::cuda::GpuMat непосредственно в CUDA Tensor.Я копался в pytorch tests и docs в поисках удобного примера, но не смог его найти.

Вопрос: Как создать CUDA Tensor из cv:: :: GpuMat CUDA

1 Ответ

0 голосов
/ 04 декабря 2018

Вот пример:

//define the deleter ...
void deleter(void* arg) {};

//your convert function 

cuda::GpuMat gImage;

//build or load your image here ...

std::vector<int64_t> sizes = {1, static_cast<int64_t>(gImage.channels()),
                          static_cast<int64_t>(gImage.rows),
                          static_cast<int64_t>(gImage.cols)};

long long step = gImage.step / sizeof(float);

std::vector<int64_t> strides = {1, 1, step, static_cast<int64_t>(gImage.channels())};

auto tensor_image = torch::from_blob(gImage.data, sizes, strides, deleter,  torch::kCUDA);
std::cout << "output tensor image : " << tensor_image << std::endl;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...