使用Tensorflow C++ API执行skflow培训的模型

lun*_*na_ 4 c++ python machine-learning tensorflow skflow

是否可以使用没有标记输入(或输出)节点的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
Run Code Online (Sandbox Code Playgroud)

使用提供的输入张量运行图形,并填充output_tensor_names中指定的端点的输出.运行但不返回target_node_names中节点的Tensors.

有没有办法在不知道输入/输出节点标签的情况下执行图形?也许有一种方法可以在Python中加载图形,给出节点标签,然后再将其保存为protobuf?理想情况下,我想传入一个应用于输入节点的向量,而不必担心任何标签.

ilb*_*gon 6

在skflow中,所有节点都已经有标签,它只需要为您恢复它们.

默认名称分别是input:0output:0for Xy,然后是一些自定义名称,用于预测和丢失,具体取决于您使用的模型.

找出预测和概率节点名称的方法是查看endpoints保存模型的目录中的文件(如果用于estimator.save(path)保存).

它应该如下所示:

输入:0

输出:0

logistic_regression/softmax_classifier /使用SoftMax

logistic_regression/softmax_classifier/xent:0

前两个是输入/输出节点的名称,后两个是预测和丢失节点.