是否可以找到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,我认为这是因为输入是一个占位符,并且在构建图层时不知道其值。
是否有一个选项/方法/解决方法仍然可以找到图层输入的最小值,最大值,以便可以将其用于tf.quantization.fake_quant_with_min_max_args()函数?例如。在构建过程中,将最小值,最大值设置为默认值,但是在训练,干扰或输入有数据馈送时,它将最小值,最大值计算为float?