С помощью сообщества 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
не может загрузить экспортированную модель?
так:
Какие у меня "output_node_names
"?
, поскольку это SavedModel, что tags
мне нужно?
Буду очень признателен за любые указания.