Heads¶
Linear¶
- class eztorch.models.heads.LinearHead(affine=True, bias=True, dropout=0.0, dropout_inplace=False, input_dim=2048, norm_layer=None, output_dim=1000, init_normal=True, init_mean=0.0, init_std=0.01, zero_bias=True)[source]¶
Build a Linear head with optional dropout and normalization.
- Parameters:
affine (
bool, optional) – Use affine in normalization layer.Default:Truebias (
bool, optional) – Use bias in linear layer. Ifnorm_layer, set toFalse.Default:Truedropout (
float, optional) – Dropout probability, if \(0\), no dropout layer.Default:0.0dropout_inplace (
bool, optional) – Use inplace operation in dropout.Default:Falseinput_dim (
int, optional) – Input dimension for the linear head.Default:2048norm_layer (
Union[str,Module,None], optional) – Normalization layer after the linear layer, ifstrlookup for the module in_BN_LAYERSdictionary.Default:Noneoutput_dim (
int, optional) – Output dimension for the linear head.Default:1000init_normal (
bool, optional) – IfTrue, make normal initialization for linear layer.Default:Trueinit_mean (
float, optional) – Mean for the initialization.Default:0.0init_std (
float, optional) – STD for the initialization.Default:0.01zero_bias (
bool, optional) – IfTrue, put zeros to bias for the initialization.Default:True- Raises:
NotImplementedError – If
norm_layeris not supported.Linear 3D¶
- class eztorch.models.heads.Linear3DHead(input_dim, pool=None, dropout=None, bn=None, proj=None, norm=False, init_std=0.01, view=True)[source]¶
Linear 3D head. This layer performs an optional pooling operation followed by an optional dropout, a fully-connected projection, an optional activation layer and a global spatiotemporal averaging.
Pool3d ↓ Normalization ↓ Dropout ↓ Projection- Parameters:
in_features – Input channel size of the resnet head.
pool (
Module, optional) – Pooling module.Default:Nonedropout (
Module, optional) – Dropout module.Default:Nonebn (
Module, optional) – Batch normalization module.Default:Noneproj (
Module, optional) – Project module.Default:Nonenorm (
bool, optional) – IfTrue, normalize features along first dimension.Default:Falseinit_std (
float, optional) – Init std for weights from pytorchvideo.Default:0.01view (
bool, optional) – IfTrue, apply reshape view to \((-1, num features)\).Default:True- eztorch.models.heads.create_linear3d_head(*, in_features, num_classes=400, bn=None, norm=False, pool=<class 'torch.nn.modules.pooling.AvgPool3d'>, pool_kernel_size=(1, 7, 7), pool_stride=(1, 1, 1), pool_padding=(0, 0, 0), output_size=(1, 1, 1), dropout_rate=0.5, view=True)[source]¶
Creates ResNet basic head. This layer performs an optional pooling operation followed by an optional dropout, a fully-connected projection, an activation layer and a global spatiotemporal averaging.
Pool3d ↓ Normalization ↓ Dropout ↓ ProjectionPool3d examples include: AvgPool3d, MaxPool3d, AdaptiveAvgPool3d, and None.
- Parameters:
in_features (
int) – Input channel size of the resnet head.num_classes (
int, optional) – Output channel size of the resnet head.Default:400bn (
Union[str,Callable], optional) – A callable that constructs a batch norm layer.Default:Nonenorm (
bool, optional) – IfTrue, normalize features along first dimension.Default:Falsepool (
Union[str,Callable], optional) – A callable that constructs resnet head pooling layer, examples include:nn.AvgPool3d,nn.MaxPool3d,nn.AdaptiveAvgPool3d, andNone(not applying pooling).Default:<class 'torch.nn.modules.pooling.AvgPool3d'>pool_kernel_size (
Tuple[int], optional) – Pooling kernel size(s) when not using adaptive pooling.Default:(1, 7, 7)pool_stride (
Tuple[int], optional) – Pooling stride size(s) when not using adaptive pooling.Default:(1, 1, 1)pool_padding (
Tuple[int], optional) – Pooling padding size(s) when not using adaptive pooling.Default:(0, 0, 0)output_size (
Tuple[int], optional) – Spatial temporal output size when using adaptive pooling.Default:(1, 1, 1)dropout_rate (
float, optional) – Dropout rate.Default:0.5view (
bool, optional) – Whether to apply reshape view to \((-1, num\ features)\).Default:True- Return type:
ModuleResNet 3D head¶
- class eztorch.models.heads.VideoResNetHead(pool=None, dropout=None, proj=None, activation=None, output_pool=None, init_std=0.01)[source]¶
ResNet basic head. This layer performs an optional pooling operation followed by an optional dropout, a fully-connected projection, an optional activation layer and a global spatiotemporal averaging.
Pool3d ↓ Dropout ↓ Projection ↓ Activation ↓ AveragingThe builder can be found in
create_video_resnet_head().- Parameters:
pool (
Module, optional) – Pooling module.Default:Nonedropout (
Module, optional) – dropout module.Default:Noneproj (
Module, optional) – project module.Default:Noneactivation (
Module, optional) – activation module.Default:Noneoutput_pool (
Module, optional) – pooling module for output.Default:Noneinit_std (
float, optional) – init std for weights from pytorchvideo.Default:0.01- eztorch.models.heads.create_video_resnet_head(*, in_features, num_classes=400, pool=<class 'torch.nn.modules.pooling.AvgPool3d'>, output_size=(1, 1, 1), pool_kernel_size=(1, 7, 7), pool_stride=(1, 1, 1), pool_padding=(0, 0, 0), dropout_rate=0.5, activation=None, output_with_global_average=True)[source]¶
Creates ResNet basic head. This layer performs an optional pooling operation followed by an optional dropout, a fully-connected projection, an activation layer and a global spatiotemporal averaging.
Pooling ↓ Dropout ↓ Projection ↓ Activation ↓ AveragingActivation examples include:
ReLU,Softmax,Sigmoid, andNone. Pool3d examples include:AvgPool3d,MaxPool3d,AdaptiveAvgPool3d, andNone.- Parameters:
in_features (
int) – Input channel size of the resnet head.num_classes (
int, optional) – Output channel size of the resnet head.Default:400pool (
Union[str,Callable], optional) – A callable that constructs resnet head pooling layer, examples include:AvgPool3d,MaxPool3d,AdaptiveAvgPool3d, andNone(not applying pooling).Default:<class 'torch.nn.modules.pooling.AvgPool3d'>pool_kernel_size (
Tuple[int], optional) – Pooling kernel size(s) when not using adaptive pooling.Default:(1, 7, 7)pool_stride (
Tuple[int], optional) – Pooling stride size(s) when not using adaptive pooling.Default:(1, 1, 1)pool_padding (
Tuple[int], optional) – Pooling padding size(s) when not using adaptive pooling.Default:(0, 0, 0)output_size (
Tuple[int], optional) – Spatial temporal output size when using adaptive pooling.Default:(1, 1, 1)activation (
Union[str,Callable,None], optional) – A callable that constructs resnet head activation layer, examples include:ReLU,Softmax,Sigmoid, andNone(not applying activation).Default:Nonedropout_rate (
float, optional) – Dropout rate.Default:0.5output_with_global_average (
bool, optional) – IfTrue, perform global averaging on temporal and spatial dimensions and reshape output to \(batch\_size imes out\_features\).Default:True- Return type:
ModuleMLP¶
- class eztorch.models.heads.MLPHead(activation_inplace=True, activation_layer=<class 'torch.nn.modules.activation.ReLU'>, affine=True, bias=True, dropout=0.0, dropout_inplace=False, hidden_dims=2048, input_dim=2048, norm_layer=None, num_layers=2, last_bias=True, last_norm=False, last_affine=False, output_dim=128, last_init_normal=False, init_mean=0.0, init_std=0.01, zero_bias=True)[source]¶
Build a MLP head with optional dropout and normalization.
- Parameters:
activation_inplace (
bool, optional) – Inplace operation for activation layers.Default:Trueactivation_layer (
Union[str,Module], optional) – Activation layer, if str lookup for the module in_ACTIVATION_LAYERSdictionary.Default:<class 'torch.nn.modules.activation.ReLU'>affine (
bool, optional) – IfTrue, use affine in normalization layer.Default:Truebias (
bool, optional) – IfTrue, use bias in linear layer. Ifnorm_layer, set toFalse.Default:Truedropout (
Union[float,Iterable[float]], optional) – Dropout probability, if \(0\), no dropout layer.Default:0.0dropout_inplace (
bool, optional) – IfTrue, use inplace operation in dropout.Default:Falsehidden_dims (
Union[int,Iterable[int]], optional) – dimension of the hidden layers \((num\_layers - 1)\). If int, used for all hidden layers.Default:2048input_dim (
int, optional) – Input dimension for the MLP head.Default:2048norm_layer (
Union[str,Module,None], optional) – Normalization layer after the linear layer, if str lookup for the module in_BN_LAYERSdictionary.Default:Nonenum_layers (
int, optional) – Number of layers \((number\ of\ hidden\ layers + 1)\).Default:2last_bias (
bool, optional) – IfTrue, use bias in output layer. Iflast_normandnorm_layerset toFalse.Default:Truelast_norm (
bool, optional) – IfTrue, Apply normalization to the last layer ifnorm_layer.Default:Falselast_affine (
bool, optional) – IfTrue, use affine in output normalization layer.Default:Falseoutput_dim (
int, optional) – Output dimension for the MLP head.Default:128last_init_normal (
bool, optional) – IfTrue, make normal initialization for last layer.Default:Falseinit_mean (
float, optional) – Mean for the last initialization.Default:0.0init_std (
float, optional) – STD for the last initialization.Default:0.01zero_bias (
bool, optional) – IfTrue, put zeros to bias for the last initialization.Default:True- Raises:
NotImplementedError – If
norm_layeris not supported.