TensorFlow/with带有顶部N逻辑以返回



我目前正在处理以可扩展方式服务我的Tensorflow模型的挑战。据我所知,推荐的解决方案是使用标准的Tensorflow Modelserver。这个常见的要求很好地解决了 - 但我想要更多。我想通过解析诸如" limit"之类的参数来定义顶部n logits probabilite以返回的参数来减少传输的数据量。

在研究期间,我确定了以下解决方案:

1(在模型构建过程中创建一个更高级的SignatureDef。

2(自定义具有上述功能的基本张量/服务项目。

3(使用标准的张量型模型服务器为模型提供模型,并建立后处理服务以重组resp。以预定义的方式过滤结果。

有人比我更有经验的人可以详细介绍我的问题吗? - codesnippets或链接将很棒。

预先感谢。

您的解决方案编号3,

"使用标准Tensorflow Modelver为模型服务并构建一个 重组的后处理服务。过滤结果 预定义的方式。"

应该是最好的。

和客户端代码的链接是https://github.com/tensorflow/serving/blob/87e32bbb386f156fe208df6333333c1a7f489b57464e1/tensorflow_servod_serving_serving_serving/example/example/example/mnist_client.pleient.py.py。

如果我们想要top-n预测的值,我们可以调整函数的代码,在客户端文件中的 _create_rpc_callback,如下所示。

def _create_rpc_callback(label, result_counter):
  """Creates RPC callback function.
  Args:
    label: The correct label for the predicted example.
    result_counter: Counter for the prediction result.
  Returns:
    The callback function.
  """
  def _callback(result_future):
    """Callback function.
    Calculates the statistics for the prediction result.
    Args:
      result_future: Result future of the RPC.
    """
    exception = result_future.exception()
    if exception:
      result_counter.inc_error()
      print(exception)
    else:
      sys.stdout.write('.')
      sys.stdout.flush()
      response = numpy.array(result_future.result().outputs['scores'].float_val)
      print('Top 4 responses = ', response[0:4]) 

最后一行中的print语句将打印top-4预测。

相关内容

  • 没有找到相关文章

最新更新