cutcutcodec.core.analysis.video.quality.uvq_google.custom_nn_layers

A modified version of the Google UVQ source file.

As the original file is under apache lisence, I should mention that this is a modified version of the source file:

https://github.com/google/uvq/blob/main/uvq_pytorch/utils/custom_nn_layers.py

Classes

Conv2dNormActivationSamePadding(in_channels, ...)

Part of uvq model.

Conv2dSamePadding(in_channels, out_channels, ...)

Part of uvq model.

Conv3DSamePadding(in_channels, out_channels, ...)

Part of uvq model.

InceptionB0B3(conv1_in, conv1_out, pool_shape)

Part of uvq model.

InceptionB1B2(conv1_in, conv1_out, ...)

Part of uvq model.

InceptionMixed(conv1_in, b0_conv1_out, ...)

Part of uvq model.

InceptionMixedBlock()

Part of uvq model.

Interpolate([size, scale_factor, mode, ...])

Imitate the BilinearResize layer of tensorflow.

MBConvSamePadding(input_channels, ...)

Part of uvq model.

MaxPool3dSame(kernel_size, stride)

Part of uvq model.

PermuteLayerNHWC([permutation])

Part of uvq model.

Details

class cutcutcodec.core.analysis.video.quality.uvq_google.custom_nn_layers.Conv2dNormActivationSamePadding(in_channels: int, out_channels: int, kernel_size: int | tuple[int, int] = 3, stride: int | tuple[int, int] = 1, padding: int | tuple[int, int] | str | None = None, groups: int = 1, norm_layer: ~collections.abc.Callable[[...], ~torch.nn.modules.module.Module] | None = functools.partial(<class 'torch.nn.modules.batchnorm.BatchNorm2d'>, eps=0.001, momentum=0.99), activation_layer: ~collections.abc.Callable[[...], ~torch.nn.modules.module.Module] | None = <class 'torch.nn.modules.activation.ReLU'>, dilation: int | tuple[int, int] = 1, inplace: bool | None = True, bias: bool | None = None)[source]

Part of uvq model.

Initialize internal Module state, shared by both nn.Module and ScriptModule.

class cutcutcodec.core.analysis.video.quality.uvq_google.custom_nn_layers.Conv2dSamePadding(in_channels, out_channels, kernel_size, stride, padding=None, dilation=1, groups=1, bias=False)[source]

Part of uvq model.

Immitate the padding=”same” tensorflow convolutions.

class cutcutcodec.core.analysis.video.quality.uvq_google.custom_nn_layers.Conv3DSamePadding(in_channels, out_channels, kernel_size, stride=1, dilation=1, groups=1, bias=True)[source]

Part of uvq model.

Initialize internal Module state, shared by both nn.Module and ScriptModule.

class cutcutcodec.core.analysis.video.quality.uvq_google.custom_nn_layers.InceptionB0B3(conv1_in, conv1_out, pool_shape, include_maxpool=False)[source]

Part of uvq model.

Initialize internal Module state, shared by both nn.Module and ScriptModule.

class cutcutcodec.core.analysis.video.quality.uvq_google.custom_nn_layers.InceptionB1B2(conv1_in, conv1_out, conv2_out, pool_shape)[source]

Part of uvq model.

Initialize internal Module state, shared by both nn.Module and ScriptModule.

class cutcutcodec.core.analysis.video.quality.uvq_google.custom_nn_layers.InceptionMixed(conv1_in, b0_conv1_out, b0_pool_shape, b1_conv1_out, b1_conv2_out, b1_pool_shape, b2_conv1_out, b2_conv2_out, b2_pool_shape, b3_conv1_out, b3_pool_shape)[source]

Part of uvq model.

Initialize internal Module state, shared by both nn.Module and ScriptModule.

class cutcutcodec.core.analysis.video.quality.uvq_google.custom_nn_layers.InceptionMixedBlock[source]

Part of uvq model.

Initialize internal Module state, shared by both nn.Module and ScriptModule.

class cutcutcodec.core.analysis.video.quality.uvq_google.custom_nn_layers.Interpolate(size=None, scale_factor=None, mode='bilinear', align_corners=False)[source]

Imitate the BilinearResize layer of tensorflow.

Initialize internal Module state, shared by both nn.Module and ScriptModule.

class cutcutcodec.core.analysis.video.quality.uvq_google.custom_nn_layers.MBConvSamePadding(input_channels: int, expand_ratio: int, out_channels: int, kernel: int, stride: int, stochastic_depth_prob: float, norm_layer: ~collections.abc.Callable[[...], ~torch.nn.modules.module.Module] = functools.partial(<class 'torch.nn.modules.batchnorm.BatchNorm2d'>, eps=0.001, momentum=0.99), se_layer: ~collections.abc.Callable[[...], ~torch.nn.modules.module.Module] = <class 'torchvision.ops.misc.SqueezeExcitation'>)[source]

Part of uvq model.

Initialize internal Module state, shared by both nn.Module and ScriptModule.

class cutcutcodec.core.analysis.video.quality.uvq_google.custom_nn_layers.MaxPool3dSame(kernel_size, stride)[source]

Part of uvq model.

Initialize internal Module state, shared by both nn.Module and ScriptModule.

class cutcutcodec.core.analysis.video.quality.uvq_google.custom_nn_layers.PermuteLayerNHWC(permutation=(0, 2, 3, 1))[source]

Part of uvq model.

Initialize internal Module state, shared by both nn.Module and ScriptModule.