tf.contrib.quantize.experimental_create_training_graph
Переписывает входной граф обучения input_graph на месте для моделирования квантования.
tf.contrib.quantize.experimental_create_training_graph(
input_graph=None, weight_bits=8, activation_bits=8, symmetric=False,
quant_delay=0, freeze_bn_delay=None, scope=None
)
Эта функция должна быть вызвана до вставки операций градиента в граф, так как квантование должно моделироваться как в прямом, так и в обратном проходах.
Переменные, добавленные в результате переписывания, добавляются в коллекцию глобальных переменных.
Эта функция имеет дополнительные экспериментальные параметры, которые (ещё) недоступны для create_training_graph. Результирующее поведение может быть неопределённым.
В граф вставляются фейковые операции квантования для моделирования ошибки, вносимой квантованием. Поскольку граф преобразуется на месте, ожидаемое поведение ранее удерживаемых ссылок на узлы и тензоры может измениться.
Значение по умолчанию для quant_delay подходит для дообучения уже обученной модели с плавающей точкой (рекомендуется). Если нужно обучить квантованную модель с нуля, quant_delay должен быть установлен на количество шагов, за которое модель с плавающей точкой достигает сходимости. В этот момент квантование будет активировано и модель будет эффективно дообучена. Если quant_delay не указан при обучении с нуля, обучение часто может завершиться неудачей.
| Аргументы | |
|---|---|
input_graph | tf.Graph, который необходимо преобразовать. Если None, используется по умолчанию. |
weight_bits | Количество бит для квантования весов. |
activation_bits | Количество бит для квантования активаций. |
symmetric | Если True, использовать симметричные пределы квантования вместо отдельного обучения минимального и максимального значений для каждого диапазона квантования. |
quant_delay | Количество шагов после которого веса и активации квантуются во время обучения. |
freeze_bn_delay | Количество шагов после которого подвижные среднее и дисперсия замораживаются и используются вместо статистических данных на партии во время обучения. freeze_bn_delay должен быть больше quant_delay и соответствовать моменту, когда обучение почти сошлось. |
scope | Область, которая должна быть преобразована. Если не None, будут преобразованы только операции в этой области. |
| Исключения | |
|---|---|
ValueError | Если элементы содержат элемент, который не является tf.Tensor или tf.Operation. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/quantize/experimental_create_training_graph