当我们使用 tf 1.15 的 PReLU 转换 tf.keras 模型时,PReLU 层变为 ReLU,并且似乎与以前的运算符融合在一起。结果,28 MB 的 keras h5 文件大小变为 1.3 MB。看起来参数数量明显减少,因为我没有在 PReLU 中使用共享权重轴选项。那么,这种转换是否可以正常工作而没有任何精度损失?PReLU 的权重是否完全丢弃?同样,融合是否考虑了转置卷积层的偏差(在 netron 中没有将偏差作为输入属性提及)。这些融合是否在内部保留了训练后的权重参数,它们是否会影响 tflite 的推理准确性?
Prelu 融合:-
input = Input(shape=(512,512,3), name='ip')
x = Conv2D(filters=8, kernel_size=2, strides=2, padding='valid')(input)
x = PReLU()(x) # shared_axes not used
它在输出属性中显示prelu/ReLU
转置转换:-
cout1 = Conv2DTranspose(filters=8, kernel_size=2, strides=2, padding = 'same' )(pout1) # Bias is true by default
它没有显示输出属性的偏差
那么,融合是通过组合权重正常工作还是被丢弃?