Ответ 1
Есть несколько вариантов. Если тензор действительно маленький вектор, как и в вашем случае, вы можете сделать следующее:
tensorflow::Tensor a(tensorflow::DT_FLOAT, tensorflow::TensorShape(3));
a.vec<float>()(0) = 1.0f;
a.vec<float>()(1) = 4.0f;
a.vec<float>()(2) = 2.0f;
Если вы хотите построить немного больший и/или многомерный тензор, то tensorflow::ops::Input::Initializer
, объявленный в tensorflow/cc/framework/ops.h
, имеет много конструкторов, которые позволяют вам построить Tensor
из различных типов констант С++, таких как простые примитивные константы и вложенные списки инициализаторов, представляющие многомерный массив.
Например, если вы хотите построить матрицу 2x2
, вы можете сделать следующее:
#include "tensorflow/cc/framework/cc/ops.h"
tensorflow::ops::Input::Initializer a({{1, 2}, {3, 4}});
// a.tensor will be a Tensor with type DT_INT32 and shape {2, 2}.