Оптимизация графов для тензорного потока, созданного с помощью tf.EstimatorPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Оптимизация графов для тензорного потока, созданного с помощью tf.Estimator

Сообщение Anonymous »

Контекст:

У меня есть простой классификатор, основанный на tf.estimator.DNNClassifier, который принимает текст и выходные вероятности по тегам намерения. Я могу обучить экспорту модели в обслуживаемый объект, а также обслуживать его с помощью обслуживания тензорного потока. Проблема в том, что этот обслуживаемый файл слишком велик (около 1 ГБ), поэтому я хотел попробовать некоторые преобразования графа тензорного потока, чтобы попытаться уменьшить размер обслуживаемых файлов.

Проблема:

Я понимаю, как взять save_model.pb

Проблема:

Я понимаю, как брать save_model.pb и используйте Freeze_model.py для создания нового файла .pb, который можно использовать для вызова преобразований. Результат этих преобразований (также файл .pb) не является обслуживаемым объектом и не может использоваться при обслуживании тензорного потока.

Как разработчик может перейти от :

Код: Выделить всё

saved model -> graph transforms -> back to a servable
Есть документация, которая предполагает, что это, безусловно, возможно, но в документации совсем не интуитивно понятно, как это сделать.
Что я пробовал:

Код: Выделить всё

import tensorflow as tf

from tensorflow.saved_model import simple_save
from tensorflow.saved_model import signature_constants
from tensorflow.saved_model import tag_constants
from tensorflow.tools.graph_transforms import TransformGraph

with tf.Session(graph=tf.Graph()) as sess_meta:
meta_graph_def = tf.saved_model.loader.load(
sess_meta,
[tag_constants.SERVING],
"/model/path")

graph_def = meta_graph_def.graph_def

other_graph_def = TransformGraph(
graph_def,
["Placeholder"],
["dnn/head/predictions/probabilities"],
["quantize_weights"])

with tf.Graph().as_default():
graph = tf.get_default_graph()
tf.import_graph_def(other_graph_def)
in_tensor = graph.get_tensor_by_name(
"import/Placeholder:0")
out_tensor = graph.get_tensor_by_name(
"import/dnn/head/predictions/probabilities:0")

inputs = {"inputs": in_tensor}
outputs = {"outputs": out_tensor}

simple_save(sess_meta, "./new", inputs, outputs)
Моя идея заключалась в том, чтобы загрузить обслуживаемый объект, извлечь Graph_def из Meta_graph_def, преобразовать Graph_def и затем попытаться воссоздать обслуживаемый объект. Кажется, это неправильный подход.

Есть ли способ успешно выполнить преобразования (чтобы уменьшить размер файла при выводе) на графике из экспортированного обслуживаемого файла, а затем воссоздать обслуживаемый объект с преобразованным графом?

Спасибо.

Обновление (28 августа 2018 г.) :

Найден метод contrib.meta_graph_transform(), который выглядит многообещающе.

Обновление (03.12.2018):

Я открыл связанную с GitHub проблему, которая, кажется, решена в подробном сообщении в блоге, которое указано в конце заявки.

Подробнее здесь: https://stackoverflow.com/questions/519 ... -estimator
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Оптимизация графов для тензорного потока, созданного с помощью tf.Estimator
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Реализация Python для ценовой модели — безмасштабная модель роста сети для ориентированных графов
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Нужен совет по разработке механизма моделирования на основе графов.
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Обработка больших графов в Hadoop
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Повышение эффективности крупномасштабного анализа графов посредством параллельной обработки
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»