如何在 TensorFlow C++ API 中获取占位符大小
How to get placeholder size in TensorFlow C++ API?
我想使用C++来加载TensorFlow模型。我想知道模型输入的大小,这是模型中的占位符。
我用谷歌搜索这个问题,但我只是在堆栈溢出中找到了这个链接:
C++相当于python:tf。Graph.get_tensor_by_name() 在 Tensorflow 中?
虽然我可以得到节点,但是张量流文档没有告诉我如何访问节点的大小。那么有没有人知道这件事呢?
非常感谢!
好的,经过多次尝试。我找到了一个解决方法,它可能很棘手,但效果很好。
首先,我们可以使用以下代码获取占位符节点:
GraphDef mygd = graph_def.graph_def();
for (int i = 0; i < mygd.node_size(); i++)
{
if (mygd.node(i).name() == input_name)
{
auto node = mygd.node(i);
}
}
然后通过 NodeDef.pd.h(tensorflow/core/framework/node_def.pb.h),我们可以通过如下代码获取 AttrValue:
auto attr = node.attr();
然后通过 attr_value.cc(tensorflow/core/framework/attr_value.cc),我们可以通过如下代码获取形状 attr 值:
tensorflow::AttrValue shape = attr["shape"];
形状 AttrValue 是用于存储形状信息的结构。我们可以通过函数 SummarizeAttrValue in tensorflow/core/framework/attr_value_util.h 获取详细信息。
string size_summary = SummarizeAttrValue(shape);
然后我们可以得到形状的字符串格式,如下所示:
[?,1024]
相关文章:
- 将模板与类模板扣除占位符参数匹配
- C++初始化 std::function 时如何将占位符绑定到引用/引用参数?
- Tensorflow C++ 占位符初始化
- std::bind 不会接受 bind 占位符的 std::cref - 为什么?
- qt 中的占位符
- 我可以在 c++ 中使用占位符作为数组的索引吗?
- 为什么协程不允许使用占位符返回类型?
- TensorFlow类占位符以及其他定义输入张量的方法
- QtLineEdit 占位符:如何让用户在插入模式下将字符 1 替换为 1
- 非类型模板参数中的占位符类型是否涉及作为模板参数传递的函数的重载解析?
- 是否可以使用自动占位符来推断非类型模板参数中的函数结果
- 如何使用 msgfmt 验证格式字符串中的位置表示法占位符
- 无法推断出占位符的概念
- 编译器错误boost :: asio ::占位符:: boost v1.69的错误
- std::绑定可变参数模板、绑定参数和占位符
- 尾随返回类型中的占位符类型的用途是什么
- 如何在折叠过程中获取成员类型的提升::mpl 占位符
- 将具有任意参数和占位符的函数存储在类中,然后再调用它
- 回调中的占位符_1是如何工作的
- 如何在 TensorFlow C++ API 中获取占位符大小