我正在努力为 keras.applications 型号服务 . 这不是我第一次在 tensorflow-server docker镜像的帮助下这样做,但是当我尝试使用新发布的模型Nasnet Mobile时,我对于为什么我的代码停止工作一无所知 . 我得到的错误是:

_Rendezvous:<_Rendezvous的RPC终止于:status = StatusCode.NOT_FOUND details =“找不到请求的服务:最新(nasnest)”debug_error_string =“{”created“:”@ 1544402081.202806558“,”description“:”收到错误来自peer“,”file“:”src / core / lib / surface / call.cc“,”file_line“:1036,”grpc_message“:”找不到请求的服务:Latest(nasnest)“,”grpc_status“:5 }”

我使用标准程序导出模型

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 docs,这种类型的错误甚至不应该由grpc.Naturally生成,我将模型安装到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 logs nasnet_tfserving 2018-12-10 23:12:06.902367:I tensorflow_serving / model_servers / main.cc:157]构建单个TensorFlow模型文件config:model_name:nasnet model_base_path:/ models / nasnet 2018-12-10 23:12 :06.904872:I tensorflow_serving / model_servers / server_core.cc:462]添加/更新模型 . 2018-12-10 23:12:06.904932:I tensorflow_serving / model_servers / server_core.cc:517](重新)添加模型:nasnet 2018-12-10 23:12:07.006261:I tensorflow_serving / core / basic_manager.cc: 739]成功保留资源以加载servable {name:nasnet version:1} 2018-12-10 23:12:07.006484:I tensorflow_serving / core / loader_harness.cc:66]批准加载可服务版本{name:nasnet version:1 } 2018-12-10 23:12:07.006539:I tensorflow_serving / core / loader_harness.cc:74]加载可服务版本{name:nasnet version:1} 2018-12-10 23:12:07.006621:I external / org_tensorflow / tensorflow / contrib / session_bundle / bundle_shim.cc:360]尝试从bundle-shim加载本机SavedModelBundle:/ models / nasnet / 1 2018-12-10 23:12:07.006810:I external / org_tensorflow / tensorflow / cc / saved_model /reader.cc:31]从以下文件中读取SavedModel:/ models / nasnet / 1 2018-12-10 23:12:07.257410:I external / org_tensorflow / tensorflow / cc / saved_model / reader.cc:54]使用标签读取元图 2018-12-10 23:12: 07.557033:I external / org_tensorflow / tensorflow / core / platform / cpu_feature_guard.cc:141]您的CPU支持未编译此TensorFlow二进制文件的指令:FMA 2018-12-10 23:12:08.726888:I external / org_tensorflow / tensorflow / cc / saved_model / loader.cc:113]恢复SavedModel包 . 2018-12-10 23:12:09.814493:I external / org_tensorflow / tensorflow / cc / saved_model / loader.cc:148]在SavedModel包上运行LegacyInitOp . 2018-12-10 23:12:09.814631:I external / org_tensorflow / tensorflow / cc / saved_model / loader.cc:233]标签的SavedModel加载;现状:成功 . 花了2807935微秒 . 2018-12-10 23:12:09.814818:I tensorflow_serving / servables / tensorflow / saved_model_warmup.cc:83]在/models/nasnet/1/assets.extra/tf_serving_warmup_requests找不到预热数据文件2018-12-10 23:12 :09.815253:I tensorflow_serving / core / loader_harness.cc:86]成功加载可服务版本{name:nasnet version:1} 2018-12-10 23:12:09.823923:I tensorflow_serving / model_servers / main.cc:327]运行ModelServer在0.0.0.0:8500 ... [警告] getaddrinfo:地址族不支持节点名称[evhttp_server.cc:235] RAW:进入事件循环... 2018-12-10 23:12:09.832156:I tensorflow_serving / model_servers / main.cc:337]导出HTTP / REST API:localhost:8501 ...

任何意见??