如何在我的云机器学习引擎模型中使用C#进行在线预测?我已经在CloudMLEngine上成功部署了模型,并验证了它正在使用gcloudml-enginemodelspredict按照gcloudml-enginemodelspredict的说明进行预测,现在我想从我的C#应用程序发送预测。我该怎么做OnlinePredictionAPI是一个RESTAPI,因此您可以使用任何库发送HTTPS请求,但您需要使用Google的OAuth库来获取凭据。请求的格式是JSON,如文档中所述。作为说明,请考虑人口普查的例子。客户端可能如下所示:usingSystem;使用System.Collections.Generic;使用System.Net.Http;使用System.Net.Http.Headers;使用系统文本;使用System.Threading.Tasks;使用Google.Apis.Auth.OAuth2;使用Newtonsoft.Json;namespaceprediction_client{classPerson{publicintage{get;放;}publicStringworkclass{get;放;}publicStringeducation{get;放;}publicinteducation_num{得到;放;}publicstringmarital_status{get;放;}publicstringoccupation{get;放;}公共字符串关系{get;放;}publicstringrace{get;放;}公共字符串性别{得到;放;}publicintcapital_gain{得到;放;}publicintcapital_loss{得到;放;}publicinthours_per_week{得到;放;}publicstringnative_country{get;放;}}classPrediction{publicListprobabilities{get;放;}公共列表logits{get;放;}公共Int32类{得到;放;}publicListlogistic{get;放;}publicoverridestringToString(){ret瓮JsonConvert.SerializeObject(this);}}classMainClass{staticPredictClientclient=newPredictClient();静态字符串项目=“MY_PROJECT”;静态字符串模型=“人口普查”;//无论您将模型部署为publicstaticvoidMain(string[]args){RunAsync().Wait();}staticasyncTaskRunAsync(){try{Personperson=newPerson{age=25,workclass="Private",education="11th",education_num=7,marital_status="Never-married",occupation="Machine-op-inspct",relationship="Own-child",race="Black",gender="Male",capital_gain=0,capital_loss=0,hours_per_week=40,native_country="United-Stats"};varinstances=newList{person};列出预测=awaitclient.Predict(project,model,instances);Console.WriteLine(String.Join("n",预测));}catch(Exceptione){Console.WriteLine(e.Message);}}}classPredictClient{私有HttpClient客户端;publicPredictClient(){this.client=新的HttpClient();client.BaseAddress=newUri("https://ml.googleapis.com/v1/");client.DefaultRequestHeaders.Accept.Clear();client.DefaultRequestHeaders.Accept.Add(newMediaTypeWithQualityHeaderValue("application/json"));}publicasyncTask>Predict(Stringproject,Stringmodel,Listinstances,Stringversion=null){varversion_suffix=version==null?"":$"/版本/{版本}";varmodel_uri=$"projects/{project}/models/{model}{version_suffix}";varpredict_uri=$"{model_uri}:predict";GoogleCredentialcredential=awaitGoogleCredential.GetApplicationDefaultAsync();varbearer_token=awaitcredential.UnderlyingCredential.GetAccessTokenForRequestAsync();client.DefaultRequestHeaders.Authorization=newAuthenticationHeaderValue("Bearer",bearer_token);varrequest=new{instances=instances};varcontent=newStringContent(JsonConvert.SerializeObject(request),Encoding.UTF8,"application/json");varresponseMessage=awaitclient.PostAsync(predict_uri,内容);responseMessage.EnsureSuccessStatusCode();varresponseBody=awaitresponseMessage.Content.ReadAsStringAsync();动态响应=JsonConvert.DeserializeObject(responseBody);返回response.predictions.To}Object}(});在本地运行之前,您可能需要运行gcloudauthlogin来初始化您的凭据,如果您还没有以上内容是C#学习教程:HowdoIgetonlinepredictionsinC#inmycloudmachinelearningenginemodel?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
