是否可以使用没有标签输入(或输出)节点的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中,所有节点都已经有标签,它只是为您恢复标签。
默认名称input:0
和output:0
用于X
和y
分别,然后根据您所使用的模型预测,损失了一些自定义名称。
找出预测和概率节点名称的方法是查看endpoints
保存模型的目录中的文件(如果用于estimator.save(path)
保存)。
它看起来应该像这样:
输入:0
输出:0
logistic_regression / softmax_classifier / Softmax
logistic_regression / softmax_classifier / xent:0
其中前两个是输入/输出节点的名称,后两个是预测和损失节点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句