Когда мы конвертируем модель tf.keras с PReLU с tf 1.15, уровни PReLU становятся ReLU и, кажется, сливаются с предыдущими операторами. В результате файл keras h5 размером 28 МБ становится размером 1,3 МБ. Похоже, что количество параметров значительно меньше, так как я не использовал опцию осей общих весов с PReLU. Итак, это преобразование работает правильно без потери точности? Неужели вообще отбрасываются веса PReLU? Точно так же слияние учитывает смещение транспонированных сверточных слоев (смещение не упоминается как входное свойство в netron). Сохраняют ли эти слияния параметры тренированного веса внутри и влияют ли они на точность вывода tflite?
Prelu Fusion: -
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
Не отображается смещение в свойстве вывода.
Итак, слияние работает правильно, комбинируя веса, или они отбрасываются?