-
Notifications
You must be signed in to change notification settings - Fork 2.2k
RESTful server checks consistency of batch size which breaks the model with arbitrary input or output shape #1047
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
The root cause is in https://github.com/tensorflow/serving/blob/master/tensorflow_serving/util/json_tensor.cc#L819 . It requires all the named tensors to have the same first dimension. It is quite unreasonable and inconvenient. In one of our scenarios, we generated the vocabulary(hash table) to map label index and string names and export it as part of the model. This vocabulary obviously does not have the same first dimension as the request data. This is not the consistent interfaces of the original |
Thanks for the detailed report. The intent of the code was to keep the input If you can prepare a PR with the fix i'd be happy to review! Thanks again. |
Thanks for your response @netfs . I can submit the PR to check input tensor only. But is it possible for users to specify different input shapes? For example, some developers may want to restrict the number of top-N prediction and add
|
i see what you mean, and its seems plausible that models requiring inputs the JSON request is list of rows of individual inputs, that we internally columnize
assuming we had another input say "location_id", that has batch_size=1, how
(note missing "location_id" in the second element of instances list) this can get confusing (or maybe not :-) seeing missing named input |
Thanks @netfs for the detailed explaination. Actually we know about this limitation after reading the format of JSON requests. Since we separate batch data into items in Because both the inputs and outputs of TensorFlow models are
|
yes columnar format is what i am presently leaning towards (maybe under a different key called "inputs"). additionally we need to make sure if batching is enabled: it degrades gracefully when we have inputs with differing 0-th dimension (i.e. batch sizes). |
My current proposal is as follows:
and response will be:
This will allow users to choose suitable format to express their input/output for their models. |
Great and looking forward to the new Thanks @netfs . This issue may be closed if we have supported the |
thanks for taking a look. i will compose a change to add support for column format and update this thread once the change is ready. will be great if you can help test it, once its ready. |
Great! The implementation is nice and we are glad to test it. There is one problem I found in that commit a5b7cfd . The request json data for columnar inputs should be something like
|
if 'constant' is the only named input, then you can skip specifying that, see the unit tests a5b7cfd#diff-a8a252f963e32d57426b166ad91b1aea for details. |
Thanks @netfs ! |
request in columnar format. This allows expressing named input (or output) tensors that do not have the same 0-th dimension. This change implements the proposal outline here: tensorflow#1047 (comment) Fixes tensorflow#1047 PiperOrigin-RevId: 209666367
* Fix the reference to the old file name. PiperOrigin-RevId: 209212508 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209212799 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209221439 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209229489 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209234879 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209238558 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209244752 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209252876 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209256393 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209263314 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209265561 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209285595 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209289986 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209302666 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209315060 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209319809 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209393642 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209410842 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209426726 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209435699 * Add unzip to devel package PiperOrigin-RevId: 209441638 * Correct half_plus_two -> half_plus_three in docker.md. PiperOrigin-RevId: 209441832 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209448213 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209459701 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209469391 * Default development Dockerfiles to produce a more optimized ModelServer PiperOrigin-RevId: 209472456 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209479375 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209490489 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209502117 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209510969 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209518990 * Update optimization flags recommendations PiperOrigin-RevId: 209522738 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209525370 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209529568 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209534560 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209538855 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209543217 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209553461 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209559952 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209567477 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209572442 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209595539 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209603479 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209612811 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209624218 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209635989 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209645776 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209655351 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209666113 * Add support to express input and output tensors of Predict request in columnar format. This allows expressing named input (or output) tensors that do not have the same 0-th dimension. This change implements the proposal outline here: tensorflow#1047 (comment) Fixes tensorflow#1047 PiperOrigin-RevId: 209666367 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209676286 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209685647 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209693666 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209700023 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209703988 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209708752 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209712998 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209731825 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209738910 * Enable model version labels in the model server. PiperOrigin-RevId: 209751560 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209753234 * Add build status badges for continuous+nightly builds. PiperOrigin-RevId: 209792937 * Remove status of "TF Head" build. Existing "Ubuntu Build" provides enough signal on the state of the gitrepo. PiperOrigin-RevId: 209799778 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209805263 * Replaced calls to tensorflow::StringPiece::ToString with string conversions. That is, instances of sp.ToString() are replaced with string(sp). This will allow tensorflow::StringPiece::ToString to be removed, which is necessary before it can be replaced with absl::string_view. PiperOrigin-RevId: 209806694 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209814898 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209825089 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209836354 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209845959 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209856090 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209863960 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209870287 * Rename class from HttpRestPredictionHandler -> HttpRestApiHandler, so it be used to for additional REST API methods and not be limited to just prediction APIs. This class is mostly a router from HTTP endpoints to internal worker classes, and is expected to stay small even as other REST API endpoints get added. PiperOrigin-RevId: 209874946 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209875736 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209880622 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209884317 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209894876 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209900704 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209913796 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209936141 * Add missing dependency to tensorflow-serving-api build_pip_package * Meet Alpine Linux requirements for mktemp mktemp TEMPLATE must end with XXXXXX in Alpine Linux % docker run --rm -it alpine:3.6 /bin/sh / # mktemp -d -t libevent.XXXXX mktemp: Invalid argument / # mktemp -d -t libevent.XXXXXX /tmp/libevent.jKecLG / # mktemp --help BusyBox v1.26.2 (2017-11-23 08:40:54 GMT) multi-call binary. Usage: mktemp [-dt] [-p DIR] [TEMPLATE] Create a temporary file with name based on TEMPLATE and print its name. TEMPLATE must end with XXXXXX (e.g. [/dir/]nameXXXXXX). Without TEMPLATE, -t tmp.XXXXXX is assumed. -d Make directory, not file -q Fail silently on errors -t Prepend base directory name to TEMPLATE -p DIR Use DIR as a base directory (implies -t) -u Do not create anything; print a name Base directory is: -p DIR, else $TMPDIR, else /tmp * Updating TensorFlow to latest green. PiperOrigin-RevId: 209964879 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209976364 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209984345 * Updating TensorFlow to latest green. PiperOrigin-RevId: 209995175 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210006923 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210016839 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210026153 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210033704 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210039159 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210043179 * Directly import tensor.proto.h (the transitive import will be removed from tensor.h soon) We plan to remove the import variant.h from tensor.h; and variant.h brings in a lot of transitive imports (including protos like tensor.proto.h). To prepare, we're updating folks who this will break. PiperOrigin-RevId: 210043667 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210047695 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210055731 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210059511 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210064831 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210069954 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210075301 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210079614 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210083951 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210088160 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210105879 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210114079 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210124035 * Removed redundant std::string -> string conversions. PiperOrigin-RevId: 210127626 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210135188 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210142936 * Update bazel.rc PiperOrigin-RevId: 210148896 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210152249 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210162761 * Update implementation of optimization flags PiperOrigin-RevId: 210167619 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210172454 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210180873 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210187039 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210191416 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210194697 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210198019 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210208499 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210216276 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210224900 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210256024 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210258134 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210271455 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210322561 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210328210 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210350983 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210384280 * Directly import tensor.proto.h (the transitive import will be removed from tensor.h soon) We plan to remove the import variant.h from tensor.h; and variant.h brings in a lot of transitive imports (including protos like tensor.proto.h). To prepare, we're updating folks who this will break. PiperOrigin-RevId: 210392614 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210394881 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210406684 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210437609 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210448571 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210457512 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210464671 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210475410 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210480709 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210489481 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210493488 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210502178 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210513792 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210518475 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210548942 * Add new REST API to get status of models known to the ModelServer. The API is accessible via GET method on following URL: http://host:port/v1/models/${MODEL_NAME}[/versions/${MODEL_VERSION}] This closely mirrors `GetModelService.GetModelStatus` gRPC API. If no ${MODEL_VERSION} is specified, status for all versions of the model are returned. PiperOrigin-RevId: 210554222 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210558462 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210580715 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210613226 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210624649 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210634179 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210642123 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210648215 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210652892 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210657772 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210662340 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210667027 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210692176 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210697925 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210714741 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210730081 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210739779 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210751790 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210763533 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210785368 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210797415 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210808778 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210818742 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210827189 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210834551 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210840420 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210849745 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210854342 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210864386 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210871994 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210879339 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210890467 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210897025 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210906669 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210929579 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210946384 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210964552 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210977583 * Updating TensorFlow to latest green. PiperOrigin-RevId: 210999519 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211008596 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211015405 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211021634 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211025361 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211030060 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211034869 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211042744 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211047977 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211065383 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211079529 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211092679 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211101314 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211111559 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211122437 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211131001 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211140391 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211150256 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211159441 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211166367 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211173793 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211176461 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211179017 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211182228 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211185271 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211189621 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211192635 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211200782 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211209265 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211211166 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211231509 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211262324 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211294882 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211331648 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211351934 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211384717 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211394512 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211408480 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211434220 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211438961 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211467049 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211486592 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211499990 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211508655 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211520459 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211533217 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211541602 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211551681 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211559626 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211565612 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211569967 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211578437 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211582586 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211586976 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211593082 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211599422 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211604404 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211634227 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211641979 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211659890 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211668438 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211674601 * Removed a dependency on absl internal pkgs. PiperOrigin-RevId: 211681731 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211716173 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211726395 * Updating TensorFlow to latest green. PiperOrigin-RevId: 211732092
When I use columnar format to infer using TF Serving, I get the following error,
The model is based on seq2seq library. Also, the different format of input gives different error. Kindly see here |
Uh oh!
There was an error while loading. Please reload this page.
Bug Report
System information
Describe the problem
The RESTful server will check the consistency of batch size which may requires all the input and output tensor to support "batch size". In fact, our models may output the tensor which does not have batch size. These models work like a charm with
TensorFlow Serving gRPC APIs
but notTensorFlow Serving RESTful APIs
.Exact Steps to Reproduce
This is easy to re-produce and we can export the example SavedModel with these script. The code to break RESTful server is
constant_op = tf.constant([1.0, 2.0])
which is a tensor with shape[2]
.Then load the model with
TensorFlow Serving
while exposing both gRPC and RESTful APIs. Remember to change the absolute path of your model.Then request the RESTful APIs with simple
curl
command.This will get the error message of
{ "error": "Tensor name: keys has inconsistent batch size: 1 expecting: 2" }
. If we change to code of model signature withconstant_op = tf.constant([1.0])
, this will work because our request just have the batch size of[1]
.And we have implement the gRPC client to make sure the model is normal. Here is the code of the gRPC client for this mode.
And this gRPC client will work and output the expected result.
Source code / logs
Above.
The text was updated successfully, but these errors were encountered: