2015-05-29 66 views
-1

有人可以帮助我提供实时预测模型的api名称。请注意,我没有请求RealtimeEndpointRequest对象。我已经浏览了AWS Machine Learning SDK的整个文档,但没有发现任何内容。JAVA AWS机器学习API支持实时预测

编辑1: 这是我使用的代码 -

 CreateRealTimePrediction createRealTimePrediction ; 
     CreateRealtimeEndpointRequest createRealtimeEndPointReq; 
     CreateRealtimeEndpointResult createRealtimeEndPointRes; 
     PredictRequest predReq; 
     String mlModelId="ml-Lkqmcs8cM2W"; 
     createRealtimeEndPointReq.setMLModelId(mlModelId); 
     PredictResult predRes = null; 
     Map<String,String> record=null; 
     // assume i have set a record in the Map. 
     createRealtimeEndPointRes = amlClient.createRealtimeEndpoint(createRealtimeEndPointReq); 
     String predictEndpoint=createRealtimeEndPointRes.getRealtimeEndpointInfo().getEndpointUrl(); 

     predReq= new PredictRequest(); 
     predReq.setMLModelId(mlModelId); 
     for (int i=0;i<recordKeys.length;i++){ 
      record.put(recordKeys[i],recordValues[i]); 
     } 
     predReq.setRecord(record); 
     predReq.setPredictEndpoint(predictEndpoint); 
     predRes=amlClient.predict(predReq); 
     return predRes;  
    } 

现在正在发生的事情是 - 如果我通过手动使用AWS管理控制台启用实时预测,然后运行该段的代码,然后将结果产生如预期,但是当我实时预测被禁止,则我得到这个错误 -

Exception in thread "main" com.amazonaws.services.machinelearning.model.PredictorNotMountedException: Either ML Model with id ml-Lkqmcs8 
cM2W is not enabled for real-time predictions or the MLModelId is invalid. (Service: AmazonMachineLearning; Status Code: 400; Error Code 
: PredictorNotMountedException; Request ID: 2dc70e58-07d0-11e5-a0c7-bb93f17d1b2e) 
     at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1160) 
     at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:748) 
     at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:467) 
     at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:302) 
     at com.amazonaws.services.machinelearning.AmazonMachineLearningClient.invoke(AmazonMachineLearningClient.java:1995) 
     at com.amazonaws.services.machinelearning.AmazonMachineLearningClient.predict(AmazonMachineLearningClient.java:637) 
     at com.nrift.aml.prediction.realtime.CreateRealTimePrediction.createRealTimePrediction(CreateRealTimePrediction.java:61) 
     at RealTimePrediction.main(RealTimePrediction.java:53) 

这实际上意味着这个代码段是不启用实时预测,虽然我已经使用

CreateRealtimeEndpoint 

api在里面。

P.s-我发布的代码段是不完整的,完整的代码工作正常,因此您可以对代码的正确性做出假设。

回答

2

您正在查找的API是CreateRealtimeEndpoint。创建实时端点是使模型能够用于实时预测的机制。当您不再需要使用此模型时,可以使用DeleteRealtimeEndpoint API销毁端点。该模型始终保持不变,因此您可以在需要时创建/删除端点。

+0

请参阅编辑1中的问题,我已经添加了一些更多的细节。 –