当前位置: 首页 > 知识库问答 >
问题:

出现不可能的错误:grpc状态=状态代码。NOT_FOUND,details=“未找到请求的服务”

殷承恩
2023-03-14

我正在尝试提供keras.applications模型。这不是我第一次在tensorflow-server docker映像的帮助下这样做,但是当我尝试使用新发布的模型Nasnet Mobile时,我不知道为什么我的代码停止工作。我得到的错误是:

_会合地点:

我用标准程序导出模型

from keras import backend as K

K.set_learning_phase(0) # Deactivate train-only-layers like: batch norm and dropout
print(model.input)
print(model.output)

from tensorflow.python.saved_model import builder as saved_model_builder

export_path = 'export/nasnet/1' # should always end on int (model versioning)
builder = saved_model_builder.SavedModelBuilder(export_path)


from tensorflow.python.saved_model import tag_constants, signature_constants
from tensorflow.python.`enter code here`saved_model.signature_def_utils_impl import predict_signature_def
#from tensorflow.python.saved_model.signature_def_utils_impl import build_signature_def

in_tensors = dict()
out_tensors = dict()

sess =  K.get_session()

in_tensors['input'] = sess.graph.get_tensor_by_name('input_1:0')
out_tensors['predictions'] = sess.graph.get_tensor_by_name('predictions/Softmax:0')

prediction_signature = predict_signature_def(inputs=in_tensors,
                                            outputs=out_tensors)

# export the protobuf and its signatures
builder.add_meta_graph_and_variables(sess=sess,
                                    tags=[tag_constants.SERVING],
                                    signature_def_map={
        signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY:prediction_signature})

builder.save()

正常输出显示:

Tensor("input_1:0", shape=(?, 224, 224, 3), dtype=float32)
Tensor("predictions/Softmax:0", shape=(?, 1000), dtype=float32)


INFO:tensorflow:No assets to save.
INFO:tensorflow:No assets to write.
INFO:tensorflow:SavedModel written to: export/nasnet/1/saved_model.pb

b'export/nasnet/1/saved_model.pb'

根据grpc文档,这种错误甚至不应该由grpc产生。很自然,我将模型装载到docker容器中:

docker run -d -p 8500:8500 \
    --mount type=bind,source=$(pwd)/export/nasnet/,target=/models/nasnet \
    -e MODEL_NAME=nasnet -e TF_CPP_MIN_VLOG_LEVEL=0 \
    --name nasnet_tfserving \
    -t tensorflow/serving:1.10.0 

容器中只装载了一个模型,版本为1。是什么导致了这种状态代码?docker日志看起来正常:

Docker日志nasnet_tfserving2018-12-10 23:12:06.902367:我tensorflow_serving/model_servers/main.cc:157]构建单个TensorFlow模型文件配置:model_name: nasnetmodel_base_path: /models/nasnet2018-12-10 23:12:06.904872:我tensorflow_serving/model_servers/server_core.cc:462]添加/更新模型。2018-12-10 23:12:06.904932:我tensorflow_serving/model_servers/server_core.cc:517](重新)添加模型: nasnet 2018-12-10 23:12:07.006261:我tensorflow_serving/core/basic_manager.cc:739]成功保留资源以加载servable{name: nasnet version: 1} 2018-12-10 23:12:07.006484: Itensorflow_serving/core/loader_harness.cc:66]批准加载servable version{name: nasnet version: 1} 2018-12-10 23:12:07.006539:我tensorflow_serving/core/loader_harness.cc:74]加载servable version{name: nasnet version: 1} 2018-12-10 23:12:07.006621:我外部/org_tensorflow/tenorflow/contrib/session_bundle/bundle_shim.cc:360]尝试在bundle-shim中加载本地SavedModelBundle来自: /models/nasnet/12018-12-10 23:12:07.006810: I外部/org_tensorflow/tenorflow/cc/saved_model/reader.cc:31]从: /models/nasnet/12018-12-10 23:12:07.257410: I外部/org_tensorflow/tenorflow/cc/saved_model/reader.cc:54]使用标签{service}读取元图2018-12-10 23:12:07.557033: I外部/org_tensorflow/tenorflow/core/平台/cpu_feature_guard.cc:141]您的CPU支持此TensorFlow二进制文件未编译为使用的指令:FMA 2018-12-10 23:12:08.726888: I外部/org_tensorflow/tenorflow/cc/saved_model/loader.cc:113]恢复SavedModel捆绑包。2018-12-10 23:12:09.814493: I外部/org_tensorflow/tenorflow/cc/saved_model/loader.cc:148]在SavedModel捆绑包上运行LegacyInitOp。2018-12-10 23:12:09.814631: I外部/org_tensorflow/tenorflow/cc/saved_model/loader.cc:233]标签{service}的SavedModel负载;状态:成功。花了2807935微秒。2018-12-10 23:12:09.814818:我tensorflow_serving/servables/tenorflow/saved_model_warmup.cc:83]在 /models/nasnet/1/assets.extra/tf_serving_warmup_requests找不到预热数据文件2018-12-10 23:12:09.815253:我tensorflow_serving/core/loader_harness.cc:86]成功加载可服务版本{name: nasnet version: 1} 2018-12-10 23:12:09.823923:我tensorflow_serving/model_servers/main.cc:327]在0.0.0.0:8500运行ModelServer...[警告]getaddrinfo:不支持节点名的地址系列[evhttp_server.cc: 235]RAW:进入事件循环...2018-12-10 23:12:09.832156:我tensorflow_serving/model_servers/main.cc:337]在:localhost:8501...

有什么意见吗??

共有1个答案

东门彬
2023-03-14

您的客户端代码似乎有问题。错误显示“未为请求找到可服务:最新(nasnest)”。但您使用“nasnet”作为模型名启动了tf服务器。只需在客户端代码中将“nasnest”更改为“nasnet”。

 类似资料:
  • 我试图使一个API工作在springstart但是当我输入请求:http://localhost:8080/employee/all我得到这个结果: 它是一个经典的服务,包含一个模型、一个服务、一个存储库、一个映射器和一个异常(如果没有员工),使用的数据库是sql中的实体,如下所示 服务: 仓库 模型 制图员 例外 波姆。xml

  • 我在临时服务器上推送了我的textract代码,现在我收到了一个错误。 它正在开发一个系统。我不明白为什么会这样。 我正在使用dotnet core 3.0 我遵循这里提供的代码示例。[https://github.com/aws-samples/amazon-textract-code-samples/tree/master/src-csharp] 我对IAM的资质有疑问。为此,我在stagin

  • 我在Heroku上托管了一个Springboot应用程序。构建和部署工作得非常好。然而,每当我想访问该方法时,我都会看到这个错误<代码>出现意外错误(类型=错误请求,状态=400) 如果我使用loclhost,但使用Heroku的应用程序时抛出错误,那么它在Postman上运行得非常好。 这是控制器的样子。我猜这就是问题的来源。 . 你认为我能做些什么让api在Heroku上工作?

  • 我正试图通过Axios在本地发送一个POST请求,其中包含用户名和密码。 我正在部署一个Flask应用程序http://127.0.0.1:5000/login,它处理/login路由。POST请求失败,出现以下错误 我研究了一点,认为这可能是CORS的问题,但情况似乎并非如此,因为我尝试了一个Axios GET请求,它工作正常(响应记录正确)。这是我的部分代码 查看ChromeDevTools,

  • 我的目标是从Spring WebClient请求中获取HttpStatus。请求的所有其他信息都不相关。

  • 只有在使用docker stack deploy启动容器时,才会出现间歇性错误,使用DockerCompose`grpc._channel._Rendezvous可以正常工作: