Module delta.extensions.layers.efficientnet
An implementation of EfficientNet. This is taken from tensorflow but modified to remove initial layers.
Functions
def DeltaEfficientNet(input_shape, width_coefficient=1.1, depth_coefficient=1.2, name=None)def EfficientNet(width_coefficient, depth_coefficient, drop_connect_rate=0.2, depth_divisor=8, activation_fn=<function swish>, blocks_args=[{'kernel_size': 3, 'repeats': 1, 'filters_in': 32, 'filters_out': 16, 'expand_ratio': 1, 'id_skip': True, 'strides': 1, 'se_ratio': 0.25}, {'kernel_size': 3, 'repeats': 2, 'filters_in': 16, 'filters_out': 24, 'expand_ratio': 6, 'id_skip': True, 'strides': 2, 'se_ratio': 0.25}, {'kernel_size': 5, 'repeats': 2, 'filters_in': 24, 'filters_out': 40, 'expand_ratio': 6, 'id_skip': True, 'strides': 2, 'se_ratio': 0.25}, {'kernel_size': 3, 'repeats': 3, 'filters_in': 40, 'filters_out': 80, 'expand_ratio': 6, 'id_skip': True, 'strides': 2, 'se_ratio': 0.25}, {'kernel_size': 5, 'repeats': 3, 'filters_in': 80, 'filters_out': 112, 'expand_ratio': 6, 'id_skip': True, 'strides': 1, 'se_ratio': 0.25}, {'kernel_size': 5, 'repeats': 4, 'filters_in': 112, 'filters_out': 192, 'expand_ratio': 6, 'id_skip': True, 'strides': 2, 'se_ratio': 0.25}, {'kernel_size': 3, 'repeats': 1, 'filters_in': 192, 'filters_out': 320, 'expand_ratio': 6, 'id_skip': True, 'strides': 1, 'se_ratio': 0.25}], model_name='efficientnet', weights='imagenet', input_tensor=None, input_shape=None, name=None)def block(inputs, activation_fn=<function swish>, drop_rate=0.0, name='', filters_in=32, filters_out=16, kernel_size=3, strides=1, expand_ratio=1, se_ratio=0.0, id_skip=True)-
A mobile inverted residual block.
Arguments
inputs: input tensor. activation_fn: activation function. drop_rate: float between 0 and 1, fraction of the input units to drop. name: string, block label. filters_in: integer, the number of input filters. filters_out: integer, the number of output filters. kernel_size: integer, the dimension of the convolution window. strides: integer, the stride of the convolution. expand_ratio: integer, scaling coefficient for the input filters. se_ratio: float between 0 and 1, fraction to squeeze the input filters. id_skip: boolean.Returns
output tensor for the block. def correct_pad(inputs, kernel_size)-
Returns a tuple for zero-padding for 2D convolution with downsampling.
Arguments
input_size: An integer or tuple/list of 2 integers. kernel_size: An integer or tuple/list of 2 integers.Returns
A tuple. def swish(x)-
Swish activation function.
Arguments
x: Input tensor.Returns
The Swish activation: `x * sigmoid(x)`.References
[Searching for Activation Functions](https://arxiv.org/abs/1710.05941)