使用 Tensorflow C++ API 执行在 skflow 中训练的模型
Executing a model trained in skflow using the Tensorflow C++ API
是否可以使用没有标记输入(或输出(节点的Tensorflow C++ API执行图形?据我所知,在训练我的模型时(使用 python 中的 skflow,后来我将其保存为二进制 protobuf(,我没有标记输入/输出节点,但我能够在 Python 中毫无困难地恢复模型并进行预测。使用 C++ API 执行图形时,输入向量是字符串和张量对,其中我假设字符串是指输入节点的标签。从文档中:
Session::Run(const std::vector< std::pair< string, Tensor > > &inputs, const std::vector< string > &output_tensor_names, const std::vector< string > &target_node_names, std::vector< Tensor > *outputs)=0
使用提供的输入张量运行图形并填充输出 output_tensor_names中指定的终结点。运行到但不运行 返回 target_node_names 中节点的张量。
有什么方法可以在不知道输入/输出节点标签的情况下执行图形?也许有一种方法可以在 Python 中加载图形,给节点标签,然后再次将其保存为 protobuf?理想情况下,我只想传入一个应用于输入节点的向量,而不必担心任何标签。
在 skflow 中,所有节点都已经有标签,它只是负责为您恢复它们。
默认名称分别为X
和y
的input:0
和output:0
,然后是预测和损失的一些自定义名称,具体取决于您使用的模型。
找出预测和概率节点名称的方法是查看保存模型的目录中endpoints
文件(如果使用estimator.save(path)
保存(。
它应该看起来像这样:
输入:0
输出:0
logistic_regression/softmax_classifier/软最大
logistic_regression/softmax_classifier/Xent:0
其中前两个是输入/输出节点的名称,后两个是预测和损失节点。
如果你可以"在 Python 中毫无困难地恢复模型并进行预测",那么你可以使用它们的 "name" 属性找出输入节点或张量的名称/标签,在以下任一中搜索 ".name":
https://www.tensorflow.org/versions/0.6.0/api_docs/python/framework.html#Operation艺术 https://www.tensorflow.org/versions/0.6.0/api_docs/python/framework.html#Tensor
所有节点都有名称/标签,无论您是否显式命名它们。
- QTableView:endMoveRows在模型中重置水平页眉大小
- 将IBM Rhapsody模型集成到VS 2019中
- 旋转模型矩阵时的形状失真
- 成员函数调用和C++对象模型
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- 打印 ONNXRUNTIME::图形没有模型
- C++内存模型和位字段的最大序列
- 使用SIR模型的疾病爆发模拟
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 如何在 ECS 模型中组织实体?
- 在官方张量流 resnet50 模型上运行 tflite 精度工具
- Libtorch:如何加载ONNX模型?
- 使用 assimp 加载模型 - 不需要提升?
- 如何将经过训练的机器学习模型保存在python中并将其加载到C++中进行预测?
- C++内存模型中的确切规则阻止在获取操作之前重新排序
- 如何更改古罗比C++模型中的目标值系数
- 如何在 openGL 中围绕全局轴旋转模型?
- 我们可以将阈值应用于色彩空间模型的单个组件(如 RGB 和 LAB)吗?
- ASIMP 模型加载不会加载所有网格
- 使用 Tensorflow C++ API 执行在 skflow 中训练的模型