Есть ли возможность найти минимальный, максимальный диапазон входных значений слоя 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 как число с плавающей запятой?