---
_import: ../resnet50.yaml
_gate:
    enable: true
    policy: parametric
    density: 1.0
    pool: avg
    regularizer:
        # l1: 0.000001
        # moe: 0.01
        null
    threshold: online
    trainable: true
model:
    name: resnet50
    layers:
        _gated_conv: &gated_conv
            type: gated_convolution
            gate_params: $(_gate)
            trainable: $(_gate.trainable)
        _bottleneck: &bb
            type: module
            kwargs: {stride: null, depth: null, shortcut: null}
            layers:
                conv1: {<<: *gated_conv}
                conv2: {<<: *gated_conv}
                conv3: {<<: *gated_conv}
                conv_shortcut: {<<: *gated_conv}
        conv1: {<<: *gated_conv}
        b2a: {<<: *bb}
        b2b: {<<: *bb}
        b2c: {<<: *bb}
        b3a: {<<: *bb}
        b3b: {<<: *bb}
        b3c: {<<: *bb}
        b3d: {<<: *bb}
        b4a: {<<: *bb}
        b4b: {<<: *bb}
        b4c: {<<: *bb}
        b4d: {<<: *bb}
        b4e: {<<: *bb}
        b4f: {<<: *bb}
        b5a: {<<: *bb}
        b5b: {<<: *bb}
        b5c: {<<: *bb}
