python - 有没有一种方法可以在训练期间找到 Tensorflow/Keras 层输入的最小值、最大值?
问题描述
是否有一个选项可以找到 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 的输出是张量,我认为这是因为输入是占位符,并且在构建层时值是未知的。
是否有一个选项/方法/解决方法仍然可以找到层输入的最小值、最大值,以便它可以用于 tf.quantization.fake_quant_with_min_max_args() 函数?例如,在构建过程中将最小值、最大值设置为默认值,但在训练、干扰或输入有数据馈送时,它会将最小值、最大值计算为浮点数?
解决方案
推荐阅读
- machine-learning - Pytorch autograd:计算输入的批量梯度
- r - 如何在密度图上居中文本标签
- apache - .htaccess 重定向到子域并强制执行 HTTPS
- c# - 是否可以仅将 .NET Standard + .NET Core 类/库构建到 .NET Standard?
- regex - 如何在正则表达式中获取年龄
- java - 如何从外部服务收集 Java Stream 内的数据?
- react-native - 如何在 react-native 中获取组件(元素)的 id
- django - How do I implement a machine learning model trained by python to a webpage?
- java - 在java中的二叉树递归函数中存储一个计数器
- javascript - 查找用于网页的 JSON 数据的来源