我目前正在努力使用Tensorflow服务库来提供张量流模型。正如我所知,我必须创建一个与我使用的模型的输入/输出相匹配的签名。该模型用于识别命名实体(命名实体识别),以便输入它采用原始文本并作为签名中的输入使用
input = tf.placeholder(dtype=tf.string, shape=[1])
但输出我不知所措。我见过其他人使用的输出是模型的最后一层,但我模型中的最后一层使用
tf.contrib.crf.viterbi_decode(logit, params)
不会返回张量,而是返回序列和分数,因此我无法使用此方法的输出并在我的签名中使用。
此外,我需要预先运行预测,以确保将预测操作添加到图表中,因为在加载和构建模型时它们未初始化。
到目前为止我尝试了什么:
将我的输出从viterbi_decode转换为nparray并通过
转换为张量tf.make_tensor_proto()
然后使用像
这样的空操作tf.identity(tensor)
我能够像这样访问输出层,但唯一的结果是我 得到客户端是我最初的测试预测的结果。
使用输入张量作为空预测方法的参数,但是我 我需要为我的张量提供价值,我也无法做到这一点。
tl; dr:当没有返回张量时,如何将签名中的输出分配给模型中的输出?
编辑:添加,我是Tensorflow和Tensorflow-Serving的初学者