Tensorflow C++:如何获得“输出”的张量形状?

wum*_*umo 3 c++ tensorflow

TF_GraphGetTensorShape在C API,但接口不与C ++兼容GraphOutput。如何使用 tensorflow C/C++ API 做同样的事情?

例如。如何Slice使用 C++ API获取操作的返回张量形状,然后使用该张量形状制作variable具有相同形状的张量形状?

geb*_*imo 5

这是一个将形状作为向量返回的小函数,例如 {48,48,2}

std::vector<int> get_tensor_shape(tensorflow::Tensor& tensor)
{
    std::vector<int> shape;
    int num_dimensions = tensor.shape().dims()
    for(int ii_dim=0; ii_dim<num_dimensions; ii_dim++) {
        shape.push_back(tensor.shape().dim_size(ii_dim));
    }
    return shape;
}
Run Code Online (Sandbox Code Playgroud)

除此之外,我发现 tensor.DebugString() 很有帮助,例如“张量类型:浮点形状:[48,48,2] 值:[[0,0390625 -1][0,0390625]]...> ”

对于 python,请参阅此线程:https : //stackoverflow.com/a/40666375/2135504tensor.get_shape().as_list()推荐的位置。