Skip to content

Significance of SiLU->BatchNorm->Conv2d structure #13

Description

@burichh

Is there any major significance having the residual layers structured as SiLU -> BatchNorm -> Conv2d?

Image

I read other UNet implementations, where the Conv2d -> BatchNorm -> SiLU ordering was used. I'm not sure if there might be a strong case for one or the other, besides maybe:

  1. SiLU -> BatchNorm -> Conv2d might be a bit more expressive, because the non-linearity is applied before the normalization, thus the model can utilize a wider range of the non-linear function,
  2. Conv2d -> BatchNorm -> SiLU might be a bit more stable during training, because the activations cannot explode so easily.

I'm just speculating now, I wonder if you have any experience with this, or any kind of reasoning about the preference of one over the other?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions