带有gRPC/TensorFlow服务的Leonardo BYOM错误

2020-09-14 23:41发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我试图调用我的TF人工神经网络模...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我试图调用我的TF人工神经网络模型,该模型部署在SAP Cloud的Cloud Foundry环境中,并从Keras模型转换为TensorFlow SavedModel格式。

因此,我有一个使用TensorFlow Serving和gRPC的Python2 API。 它是在帮助文章和< rel =" nofollow" hraf=" https://blogs.sap.com/2018/03/16/sap-leonardo-ml-foundation-bring-your-own-model-byom/">此 博客文章。

尝试在本地venv中执行API时,我已经收到错误。 API代码:

导入操作系统
 进口grpc
 从grpc.beta导入实现
 将tensorflow作为tf导入
 从tensorflow_serving.apis导入predict_pb2
 从tensorflow_serving.apis导入预测_服务_pb2

 MODEL_NAME = str(os.getenv('MODEL_NAME',''))
 MODEL_SERVER_HOST = str(os.getenv('MODEL_SERVER_HOST',''))
 MODEL_SERVER_PORT = int(os.getenv('MODEL_SERVER_PORT',''))
 ROOT_CERT = str(os.getenv('ROOT_CERT',''))。replace('\\ n','\ n')

 def metadata_transformer(metadata):
     加法= []

     令牌='承载者<我的访问令牌>'
     annexs.append((''授权',令牌))
     返回元组(元数据)+元组(添加项)

 凭据= Implementations.ssl_channel_credentials(root_certificates = ROOT_CERT)
 通道= Implementations.secure_channel(MODEL_SERVER_HOST,MODEL_SERVER_PORT,凭据)
 存根= projection_service_pb2.beta_create_PredictionService_stub(channel,metadata_transformer = metadata_transformer)

 #grpc非测试版->不适用于tf服务吗?  ->以(StatusCode.UNAVAILABLE,名称解析失败而终止的RPC的集合
 #credentials = grpc.ssl_channel_credentials(root_certificates = ROOT_CERT)
 #server ="'" + MODEL_SERVER_HOST +':'+ str(MODEL_SERVER_PORT)+"'"
 #channel = grpc.secure_channel(服务器,凭据)
 #non beta->无法添加元数据->在下面的请求中添加
 #stub = projection_service_pb2.PredictionServiceStub(渠道)

 #测试:
 将numpy导入为np
 数据= np.matrix([])

 request = predict_pb2.PredictRequest()
 request.model_spec.name = MODEL_NAME
 #request.model_spec.signature_name ='ticketCatFeature2'
 request.inputs ['input']。CopyFrom(
     tf.contrib.util.make_tensor_proto(data,shape = [200],dtype = tf.float32))

 #out = stub.Predict(请求,200,元数据= metadata_transformer)
 out = stub.Predict(request,200)

出现以下错误消息:

grpc.framework.interfaces.face.face.AbortionError:AbortionError(code = StatusCode.INTERNAL,details ="已收到RST_STREAM,错误代码为2")

如您所见,我还尝试使用TF Serving和gRPC(注释部分)的非beta功能进行请求。 但这会导致另一个错误:

grpc._channel._Rendezvous:<以(StatusCode.UNAVAILABLE,名称解析失败)结尾的RPC _Rendezvous>

gRPC调试总数: https://files.fm/u/d8htpjyq

我还测试了如何使用相同的示例数据在jupyter笔记本中加载和运行我的模型,并且可以按预期工作->我的AI模型不应成为错误的根本原因