Я использую exporter
от tensorflow.contrib.session_bundle
, чтобы спасти мою модель:ВЫВЕЗЕННЫЕ Tensorflow Модели не сохраняющий Заполнитель Формы
x = tf.placeholder(tf.float32, (None,) + (100, 200) + (1,))
....
saver = tf_saver.Saver(sharded=True)
model_exporter = exporter.Exporter(saver)
model_exporter.init(
sess.graph.as_graph_def(),
named_graph_signatures={
'inputs': exporter.generic_signature({'images': x}),
'outputs': exporter.generic_signature({'classes': y})})
, а затем я загрузить модель обратно в (session_bundle
из tensorflow.contrib.session_bundle
):
sess, meta_graph_def = session_bundle.load_session_bundle_from_path(input)
Однако, когда я проверяю тензор Placeholder, соответствующий входу x, я не вижу информации о форме:
> sess.graph.get_tensor_by_name(input_name)
<tf.Tensor 'Placeholder:0' shape=<unknown> dtype=float32>
Это по дизайну или есть какая-то ошибка, вызывающая утери формы?
Правильно, но я беру имя тензора, которое я [читаю из протобуфа] (https://gist.github.com/cancan101/31df34ca5dd971338cad8ca85bc1d8e2), а затем вызывает 'get_tensor_by_name', который разрешает имя для фактического тензорный объект. –
Привет, Алекс, похоже, до тех пор, пока информация о тензоре может быть получена с использованием имени, это должно сработать. Можете ли вы рассказать о конкретной проблеме? – Neal
Я до сих пор не понимаю, почему форма выходного тензора сохраняется по форме входных тензоров. –