1 tf_serving 需要算法提供的主要有三个东西:
a:模型pb文件
b:上线所需client文件
首先:pb文件需要用tf.saved_model相关models生成。
tf.saved_model.builder.SavedModelBuilder().add_meta_graph_and_variables()
中signature_def_map中对于classification_signature,prediction_signature有区分,对于这一点没有明白。对于tf_serving中的分类和预测的区别在哪里。
其次:client文件中request.model_spec.name,yaml文件中的env:name:MODEL_NAME的名字,pb文件所在文件夹的名字应该保持一致。
最后:
测试的时候发现,tf_serving返回的结果长度是训练过程中batch_size*分类类别数。这是由于训练脚本中将输入数据的size写死,image = tf.reshape(batch_size,img_size,img_size,img_channel),这样会导致任何输入模型的数据都被强制转成了这个规格。将训练脚本中相对应部分改为: image = tf.reshape(-1,img_size,img_size,img_channel),并且在builder.add_meta_graph_and_variables中添加参数strip_default_attrs=True。