Кажется достаточно простым. Я бы подумал, что какая-то кастинг станет возможной, но я не могу найти никакой документации для нее.Как изменить 2D Eigen :: Тензор для Eigen :: Matrix
Хотя я нашел способы в своем приложении, чтобы избежать использования класса Eigen :: Matrix, TensorFlow работает только с Eigen :: Tensor, а другая библиотека, которую я использую, имеет только функции для работы непосредственно с Eigen :: Matrix. Это было бы впечатляюще для чтения кода, если бы я мог использовать тензор как матрицу и работать с этим.
Редактировать: кажется, что TensorFlow DOES имеет функцию, чтобы получить Eigen :: Matrix (все еще проверяя ее). Возможно, это делает вопрос оригинальным менее интересным (возможно, никому НЕ НУЖНО преобразовать Тензоры в Матрицы.) Однако я все еще думаю, что это правильный вопрос. поэтому я не стану оставлять
Редактировать 2: после обработки ошибок TF после некоторой ошибки сборки кажется, что функция Tensor :: matrix() функции tensorflow просто возвращает 2d Eigen :: Tensor, поэтому преобразование на самом деле необходимо.
о эй, я видел это право, как я заканчивая мое редактирование. Этот ответ на самом деле имеет больше смысла, чем я. Спасибо за помощь! –
Да, половина битвы распаковывает определения шаблонов :). Рад помочь! – mrry
Кроме того, хотя ваш ответ был полностью верным, общий пример использования Tensorflow для этого, вероятно, будет включать в себя получение тензора через функцию ввода OpKernelContext *, которая возвращает const Tensor. Точно так же, как отображаемая Eigen :: Matrix должна быть const. (Это касается только тех людей, которые меня не очень хорошо знают C++, и я не могу хорошо прочитать ошибки компилятора. Я потратил час на то, чтобы понять, почему он жаловался на то, что не найдет подходящего конструктора.) –