Обучение квантованию (пере) обучение модели керас - PullRequest
2 голосов
/ 12 марта 2019

У меня есть (обученная) модель tf.keras, которую я хотел бы преобразовать в квантованную модель и переподготовить с использованием поддельной квантовой стратегии тензорного потока (с использованием python в качестве внешнего интерфейса).

Могу ли я как-то применить tf.contrib.quantize.create_training_graph непосредственно к модели (графику) keras, а затем переобучиться? Похоже, что есть некоторая проблема с тем фактом, что сессия уже создана при получении графика из K.get_session (). Graph.

Например, следующий подход:

import tensorflow.contrib.lite as tflite
keras_graph = tf.keras.backend.get_session().graph

from tensorflow.contrib.quantize import create_training_graph
create_training_graph(input_graph=keras_graph,
                      quant_delay=int(0*(len(X_train) / batch_size)))
...
model.compile(...)
model.fit_generator(...)

результатов с сообщением: «Операция» {name: 'act_softmax / sub' id: 2294 операционное устройство: {} def: {{{узел act_softmax / sub}} = Sub [T = DT_FLOAT] (conv_preds / act_quant / FakeQuantWithMinMaxVars: 0, act_softmax / Max) }} ' было изменено путем обновления входного тензора после того, как он был запущен сеансом. Эта мутация не будет иметь никакого эффекта и в будущем вызовет ошибку. Либо не изменяйте узлы после их запуска, либо создайте новый сеанс ."

И правда, ошибка: tenorflow.python.framework.errors_impl.FailedPreconditionError: Попытка использовать неинициализированное значение conv_preds / act_quant / conv_preds / act_quant / max / biased

(т. Е. Для create_training_graph нужен граф перед созданием сеанса? Возможно ли получить граф из модели keras до создания экземпляра сеанса?)

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

Буду признателен за любую помощь или указатели. Спасибо!

...