如何使用Sagemaker Java API调用端点?

时间:2018-07-12 15:30:42

标签: amazon-sagemaker

我正在尝试运行以下示例:tensorflow_abalone_age_predictor_using_layers ,其中abalone_predictor.predict(tensor_proto)用于调用端点并进行预测。我试图使用Java API AmazonSageMakerRuntime来达到相同的效果,但是我不知道如何为body指定contentTypeInvokeEndPointRequest。该文件未按照请求的格式进行详细说明。非常感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我还没有尝试过具体示例,但是下面的代码段应该可以帮助您调用端点进行预测

InvokeEndpointRequest invokeEndpointRequest = new InvokeEndpointRequest();
invokeEndpointRequest.setContentType("application/x-image");
ByteBuffer buf = ByteBuffer.wrap(image);

invokeEndpointRequest.setBody(buf);
invokeEndpointRequest.setEndpointName(endpointName);
invokeEndpointRequest.setAccept("application/json");

AmazonSageMakerRuntime amazonSageMaker = AmazonSageMakerRuntimeClientBuilder.defaultClient();
InvokeEndpointResult invokeEndpointResult = amazonSageMaker.invokeEndpoint(invokeEndpointRequest);

我看到了您尝试创建TensorProto并传递给端点请求的示例。您可以尝试create a TensorProto调用请求并将其设置为正文

答案 1 :(得分:0)

只是想出我可以重写input_fn来将请求主体字符串转换为可以馈入模型的东西,在这种情况下为TensorProto对象。