当我使用QAT(量化意识训练)训练Keras模型时,
存在一些不兼容的问题,例如不支持BatchNormalization或UpSampling2D等。
如何在不使用tfmot.quantization.keras.quantize_annotate_layer在每一层上应用每一层的情况下直接防止它? (尤其是在使用tensorflow keras功能API(而不是tf.keras.Sequential)构建模型时)
答案 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