def add_SE_block(network, in_layer, name_prefix, se_act='swish'):
    network[(name_prefix + '_SE_reduce')] = {'class': 'reduce', 'mode': 'mean', 'from': in_layer, 'axes': 'T'}
    network[(name_prefix + '_SE_linear1')] = {'class': 'linear', 'from': (name_prefix + '_SE_reduce'), 'n_out': 32}
    network[(name_prefix + '_SE_act1')] = {'class': 'activation', 'activation': se_act, 'from': (name_prefix + '_SE_linear1')}
    network[(name_prefix + '_SE_linear2')] = {'class': 'linear', 'from': (name_prefix + '_SE_act1'), 'n_out': 256}
    network[(name_prefix + '_SE_elm_mul')] = {'class': 'eval', 'eval': 'source(0) * source(1)', 'from': [(name_prefix + '_SE_linear2'), in_layer]}
    return (name_prefix + '_SE_elm_mul')
def add_SE_block(network, in_layer, name_prefix, se_act='swish'):
    network[(name_prefix + '_SE_reduce')] = {'class': 'reduce', 'mode': 'mean', 'from': in_layer, 'axes': 'T'}
    network[(name_prefix + '_SE_linear1')] = {'class': 'linear', 'from': (name_prefix + '_SE_reduce'), 'n_out': 32}
    network[(name_prefix + '_SE_act1')] = {'class': 'activation', 'activation': se_act, 'from': (name_prefix + '_SE_linear1')}
    network[(name_prefix + '_SE_linear2')] = {'class': 'linear', 'from': (name_prefix + '_SE_act1'), 'n_out': 256}
    network[(name_prefix + '_SE_elm_mul')] = {'class': 'eval', 'eval': 'source(0) * source(1)', 'from': [(name_prefix + '_SE_linear2'), in_layer]}
    return (name_prefix + '_SE_elm_mul')