Я реализую вариант U-Net в TensorFlow/Keras с настраиваемыми слоями. В одном из пользовательских слоев UPDoubleConv у меня есть Sequential self.blocks, содержащий повторяющийся шаблон UpSampling2D, за которым следует пользовательский слой DoubleConv. Я хочу убедиться, что эта часть будет полностью сериализуемой и десериализуемой с помощью model.save() и tf.keras.models.load_model() . Вот соответствующий код:
строка гарантирует, что все слои UpSampling2D и слои DoubleConv внутри полностью сериализованы и правильно десериализованы при сохранении и загрузке модели? Есть ли какие-либо подводные камни, о которых мне следует знать?
2. Будет ли аргумент обучения в
Я реализую вариант U-Net в TensorFlow/Keras с настраиваемыми слоями. В одном из пользовательских слоев UPDoubleConv у меня есть Sequential self.blocks, содержащий повторяющийся шаблон UpSampling2D, за которым следует пользовательский слой DoubleConv. Я хочу убедиться, что эта часть будет полностью сериализуемой и десериализуемой с помощью model.save() и tf.keras.models.load_model() . Вот соответствующий код: [code]@tf.keras.utils.register_keras_serializable(package="CustomLayers", name="UPDoubleConv") class UPDoubleConv(layers.Layer): def __init__(self, out_channels, num_layer=1, **kwargs): super(UPDoubleConv, self).__init__(**kwargs) self.out_channels = out_channels self.num_layer = num_layer
[/code] Мои вопросы: 1. Будет ли [code]self.blocks = tf.keras.Sequential(blocks_layers) [/code] строка гарантирует, что все слои UpSampling2D и слои DoubleConv внутри полностью сериализованы и правильно десериализованы при сохранении и загрузке модели? Есть ли какие-либо подводные камни, о которых мне следует знать? 2. Будет ли аргумент обучения в [code]x = self.blocks(x, training=training) [/code] правильно распространяться на слои внутри self.blocks, которым это требуется, и пропускаться для слоев, которые этого не требуют?