| @@ 321-335 (lines=15) @@ | ||
| 318 | x = layers.BatchNormalization(axis=bn_axis, name=name + 'bn')(x) |
|
| 319 | x = layers.Activation(activation_fn, name=name + 'activation')(x) |
|
| 320 | ||
| 321 | if 0 < se_ratio <= 1: |
|
| 322 | filters_se = max(1, int(filters_in * se_ratio)) |
|
| 323 | se = layers.GlobalAveragePooling3D(name=name + 'se_squeeze')(x) |
|
| 324 | se = layers.Reshape((1, 1, 1, filters), name=name + 'se_reshape')(se) |
|
| 325 | se = layers.Conv3D(filters_se, 1, |
|
| 326 | padding='same', |
|
| 327 | activation=activation_fn, |
|
| 328 | # kernel_initializer=CONV_KERNEL_INITIALIZER, |
|
| 329 | name=name + 'se_reduce')(se) |
|
| 330 | se = layers.Conv3D(filters, 1, |
|
| 331 | padding='same', |
|
| 332 | activation='sigmoid', |
|
| 333 | # kernel_initializer=CONV_KERNEL_INITIALIZER, |
|
| 334 | name=name + 'se_expand')(se) |
|
| 335 | x = layers.multiply([x, se], name=name + 'se_excite') |
|
| 336 | ||
| 337 | x = layers.Conv3D(filters_out, 1, |
|
| 338 | padding='same', |
|
| @@ 552-564 (lines=13) @@ | ||
| 549 | else: |
|
| 550 | x = inputs |
|
| 551 | ||
| 552 | if 0 < se_ratio <= 1: |
|
| 553 | filters_se = max(1, int(filters_in * se_ratio)) |
|
| 554 | se = layers.GlobalAveragePooling3D(name=name + 'se_squeeze')(x) |
|
| 555 | se = layers.Reshape((1, 1, 1, filters), name=name + 'se_reshape')(se) |
|
| 556 | se = layers.Conv3D(filters_se, 1, |
|
| 557 | padding='same', |
|
| 558 | activation=activation_fn, |
|
| 559 | name=name + 'se_reduce')(se) |
|
| 560 | se = layers.Conv3D(filters, 1, |
|
| 561 | padding='same', |
|
| 562 | activation='sigmoid', |
|
| 563 | name=name + 'se_expand')(se) |
|
| 564 | x = layers.multiply([x, se], name=name + 'se_excite') |
|
| 565 | ||
| 566 | x = layers.Conv3D(filters_out, 1, |
|
| 567 | padding='same', |
|