Есть ли способ найти минимум, максимум входного слоя Tensorflow / Keras во время тренировки? - PullRequest
0 голосов
/ 13 февраля 2019

Есть ли возможность найти минимальный, максимальный диапазон входных значений слоя Keras / Tensorflow, где выходные данные расчета минимального и максимального диапазонов являются плавающими?

Например, я хочу знать этодиапазон для функции tf.fake_quant_with_min_max_args (), где min, max должен быть плавающей точкой, а не тензором.

Я делаю это для весов следующим образом в моем пользовательском слое Keras, который прекрасно работает:

w_max = tf.keras.backend.eval(tf.math.reduce_max(self.weights))
w_min = tf.keras.backend.eval(tf.math.reduce_min(self.weights))
self.weights= tf.quantization.fake_quant_with_min_max_args(self.weights, min=w_min, max=w_max)

Это работает (вывод является плавающим), потому что веса инициализируются при создании слоя.

Теперь я хочу сделать что-то подобное, но с вводом слоя.Это не работает, так как выходные данные min, max являются Tensor, я предполагаю, что это потому, что вход является заполнителем, а значения не известны при построении слоя.

Есть ли опция/ method / обходной путь для нахождения минимума, максимума входных данных слоя, чтобы их можно было использовать для функции tf.quanization.fake_quant_with_min_max_args ()?Например, во время сборки установите min, max на значение по умолчанию, но во время обучения, помех или когда на вход подается поток данных, он вычисляет min, max как число с плавающей запятой?

...