不支持图层(使用QAT训练的Keras训练模型时)

时间:2020-09-29 15:55:50

标签: tensorflow keras tensorflow2.0

当我使用QAT(量化意识训练)训练Keras模型时,

存在一些不兼容的问题,例如不支持BatchNormalization或UpSampling2D等。

如何在不使用tfmot.quantization.keras.quantize_annotate_layer在每一层上应用每一层的情况下直接防止它? (尤其是在使用tensorflow keras功能API(而不是tf.keras.Sequential)构建模型时)

1 个答案:

答案 0 :(得分:0)

可以找到here

的QAT模块支持的图层

然后,要量化某些层而不是整个模型,请遵循官方的tutorial,然后添加要用于量化的层。

#added layers here
supported_layers = [tf.keras.layers.Conv2D, tf.keras.layers.Dense, tf.keras.layers.ReLU]

def apply_quantization_to_dense(layer):
  for supported_layer in supported_layers:
    if isinstance(layer, tf.keras.layers.Dense):
      return tfmot.quantization.keras.quantize_annotate_layer(layer)
  return layer