Невозможно иметь пользовательскую функцию обслуживания с API оценки - PullRequest
0 голосов
/ 26 ноября 2018

кажется, что я столкнулся с проблемой в TF 1.11.

Я создаю действительно базовую оценочную программу, используя Estimator API:

import tensorflow as tf
import numpy as np

train_input_fn = tf.estimator.inputs.numpy_input_fn(
    x={"x": np.zeros([100], np.float64)},
    y=np.ones([100], np.float64),
    num_epochs=None,
    shuffle=True)

train_spec = tf.estimator.TrainSpec(
        input_fn=train_input_fn,
        max_steps=2)


def serving_input_receiver_fn():
    serialized_tf_example = tf.placeholder(dtype=tf.float64,
                                           shape=[None, ],
                                           name='input_tensors')
    receiver_tensors = {'x': serialized_tf_example}

    return tf.estimator.export.ServingInputReceiver(
        receiver_tensors, receiver_tensors)

exporter = tf.estimator.LatestExporter(
        name="latest",
        serving_input_receiver_fn=serving_input_receiver_fn,
        exports_to_keep=5)


eval_spec = tf.estimator.EvalSpec(
        input_fn=train_input_fn,
        steps=1,
        throttle_secs=30,
        start_delay_secs=0,
        exporters=exporter)

feature_x = tf.feature_column.numeric_column("x", shape=[1])
feature_columns = [feature_x]
model = tf.estimator.DNNClassifier(feature_columns=feature_columns,
                                   hidden_units=[2],
                                   activation_fn=tf.nn.relu,
                                   n_classes=2,
                                   model_dir="./aa/")


training_results, export_dirs = tf.estimator.train_and_evaluate(
                    model,
                    train_spec,
                    eval_spec)

Здесь я просто хочу, чтобы моя функция обслуживания имела видвведите тензор с именем x, который я бы вручную передал функции обслуживания.Однако когда я запускаю train_and_evaluate:

INFO:tensorflow:'serving_default' : Classification input must be a single string Tensor; got {'x': <tf.Tensor 'input_tensors:0' shape=(?,) dtype=float64>}
INFO:tensorflow:'classification' : Classification input must be a single string Tensor; got {'x': <tf.Tensor 'input_tensors:0' shape=(?,) dtype=float64>}
INFO:tensorflow:'regression' : Regression input must be a single string Tensor; got {'x': <tf.Tensor 'input_tensors:0' shape=(?,) dtype=float64>}
WARNING:tensorflow:Export includes no default signature!

Кто-нибудь знает, почему это происходит?AFAIK Я должен иметь возможность подключить пользовательскую функцию ввода для обслуживания, особенно в том, что в моем коде ничего не используется «тензоры пения строк», которые, как я полагаю, используются для обслуживания через TFRecords

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...