Tensorflow Estimator предикат Подпись и сохранение / загрузка - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть предварительно подготовленная модель Keras, загруженная из этого файла .Его входная форма (128, 513, 1).

Мне нужно экспортировать эту модель в Оценщик, чтобы развернуть ее.Но использование его после загрузки из сохраненного файла не работает - кажется, что по какой-то причине требуется ввод формы (-1,)

Сохранение кода:

classifier = keras.estimator.model_to_estimator(keras.models.load_model(<SAVED MODEL PATH>)

feature_spec = {
    'input_1': tf.FixedLenFeature(dtype=tf.float32, shape=(128, 513, 1))
}
serving_input_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(feature_spec)

exported_model = classifier.export_savedmodel(
    export_dir_base = 'export/Servo/', 
    serving_input_receiver_fn = serving_input_fn)

with tarfile.open('model.tar.gz', mode='w:gz') as archive:
    archive.add('export', recursive=True)

Загрузка кода

estimator_predict_fn = tf.contrib.predictor.from_saved_model(exported_model)

estimator_predict_fn({'examples': np.zeros((1, 128, 513, 1))})

Броски

INFO: tenorflow: восстановление параметров из экспорта / Servo / 1550677087 / переменных / переменных INFO: tenorflow: восстановление параметров из экспорта / Servo / 1550677087 / переменных / переменных--------------------------------------------------------------------------- ValueError Traceback (последний вызов был последним) в () 1 estimator_predict_fn = tf.contrib.predictor.from_saved_model (exported_model) 2----> 3 estimator_predict_fn ({'examples': np.zeros ((1, 128, 513, 1))})

~ / anaconda3 / envs /ensorflow_p36 / lib / python3.6 / site-packages / tenorflow / contrib / Forextor /pytor.py в вызов (self, input_dict) 75, если значение не None: 76 feed_dict [self.feed_tensors [key]] = значение ---> 77 returnself._session.run (fetches = self.fetch_tensors, feed_dict = feed_dict)

~ / anaconda3 / envs / tenorflow_p36 / lib / python3.6 / site-packages / tenorflow / python / client / session.py в запуске (self, fetches, feed_dict, options, run_metadata) 875 try: 876 result = self._run (None,выборки, feed_dict, options_ptr, -> 877 run_metadata_ptr) 878, если run_metadata: 879 proto_data = tf_session.TF_GetBuffer (run_metadata_ptr)

~ / anaconda3 / envs / тензор потока / python.6/python/client/session.py в _run (self, handle, fetches, feed_dict, options, run_metadata)
1074 ', который имеет форму% r'% 1075
(np_val.shape, subfeed_t.name, ->1076 стр: Невозможно передать значение формы (1, 128, 513, 1) для Tensor 'input_example_tensor: 0', который имеет форму '(?,)'

Меня удивляет то, что когда я сохраняю,в логах есть такая строка:

ИНФОРМАЦИЯ: тензор потока: подписи включены в экспортдля прогноза: ['serve_default']

Что это значит?Почему он не использует что-то, что приходит от serve_input_fn?

Как это изменить?

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