TensorFlow Estimator для TensorFlow JS - PullRequest
0 голосов
/ 17 ноября 2018

С помощью сообщества Stack Overflow я начал понимать сложность API высокого уровня TensorFlow, Estimator. Я, возможно, по глупости, подумал, что если TensorFlow и TensorFlow JS будут ладить друг с другом, скорее всего, это будет через Estimator API ...

Итак, в этом Colab у меня есть простой пользовательский Estimator, который просто подключен так, что такие методы, как .train_and_evaluate работают и после "обучения" Estimator экспортируется через export_savedmodel.

Теперь предположим, что я хочу пойти дальше и использовать эту обученную модель в браузере через TensorFlow js.

К счастью, есть руководство о том, как конвертировать saved_model для TensorFlow JS:

tensorflowjs_converter \
    --input_format=tf_saved_model \
    --output_node_names='MobilenetV1/Predictions/Reshape_1' \
    --saved_model_tags=serve \
    /mobilenet/saved_model \
    /mobilenet/web_model

Пока аргументы имеют описание ...

  • --output_node_names Имена выходных узлов, разделенные запятыми.
  • --saved_model_tags Применяется только к преобразованию SavedModel, тегам загружаемого MetaGraphDef в формате через запятую. По умолчанию для обслуживания.
  • --signature_name Применимо только для преобразования модуля TensorFlow Hub, подпись для загрузки. По умолчанию по умолчанию. См https://www.tensorflow.org/hub/common_signatures/.

Я не уверен, что я должен заменить их для демонстрационной оценки, найденной в Colab .

Почему? Для начала, экспортер best_model, который использует serving_input_receiver_fn, имеет другой вывод при загрузке через

from tensorflow.contrib import predictor
predict_fn = predictor.from_saved_model('<exported_location>')

чем с

estimator.predict(lambda: predict_input_fn(pred_features), yield_single_examples=False)

а именно, ключом признаков предсказанных признаков, выводимых в первом, являются «выходные данные» и «метки» во втором.

который, простите мою мини-разглагольствование, почему Estimator не может загрузить экспортированную модель?

так:

  1. Какие у меня "output_node_names"?

  2. , поскольку это SavedModel, что tags мне нужно?

Буду очень признателен за любые указания.

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