How to fill a tensor in C++

前端 未结 2 827
死守一世寂寞
死守一世寂寞 2021-02-01 09:14

I\'m creating a tensor like this:

tensorflow::Tensor a(tensorflow::DT_FLOAT, tensorflow::TensorShape());

I know how to fill a scalar value:

2条回答
  •  时光取名叫无心
    2021-02-01 10:08

    There are a few options. If the tensor is really a small vector, like in your case, you can do the following :

    tensorflow::Tensor a(tensorflow::DT_FLOAT, tensorflow::TensorShape(3));
    a.vec()(0) = 1.0f;
    a.vec()(1) = 4.0f;
    a.vec()(2) = 2.0f;
    

    If you want to construct a slightly larger and/or multi-dimensional tensor, then tensorflow::ops::Input::Initializer declared in tensorflow/cc/framework/ops.h has many constructors that lets you construct a Tensor from various kinds of C++ constants such as simple primitive constants and nested initializer lists representing a multi-dimensional array.

    For example, if you want to construct a 2x2 matrix, you can do the following :

    #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}.
    

提交回复
热议问题