Composite(
  GlobalTypeRule(     # on all layers
    Union{Conv, ConvTranspose, CrossCor} => AlphaBetaRule{Float32}(2.0f0, 1.0f0),
    Dense => EpsilonRule{Float32}(1.0f-6),
    Union{typeof(Flux.dropout), AlphaDropout, Dropout} => PassRule(),
    Union{typeof(flatten), typeof(MLUtils.flatten)} => PassRule(),
  ),
  FirstLayerTypeRule( # on first layer
    Union{Conv, ConvTranspose, CrossCor} => FlatRule(),
    Dense => FlatRule(),
  ),
)
