trw.layers.convs

Module Contents

Classes

ModuleWithIntermediate

Represent a module with intermediate results

ConvsBase

Base class for all neural network modules.

class trw.layers.convs.ModuleWithIntermediate

Represent a module with intermediate results

abstract forward_with_intermediate(self, x: torch.Tensor, **kwargs) Sequence[torch.Tensor]
class trw.layers.convs.ConvsBase(dimensionality: int, input_channels: int, *, channels: Sequence[int], convolution_kernels: trw.basic_typing.ConvKernels = 5, strides: trw.basic_typing.ConvStrides = 1, pooling_size: Optional[trw.basic_typing.PoolingSizes] = 2, convolution_repeats: Union[int, Sequence[int], trw.basic_typing.IntListList] = 1, activation: Optional[trw.basic_typing.Activation] = nn.ReLU, padding: trw.basic_typing.Paddings = 'same', with_flatten: bool = False, dropout_probability: Optional[float] = None, norm_type: Optional[trw.layers.layer_config.NormType] = None, norm_kwargs: Dict = {}, pool_kwargs: Dict = {}, activation_kwargs: Dict = {}, last_layer_is_output: bool = False, conv_block_fn: trw.layers.blocks.ConvBlockType = BlockConvNormActivation, config: trw.layers.layer_config.LayerConfig = default_layer_config(dimensionality=None))

Bases: torch.nn.Module, ModuleWithIntermediate

Base class for all neural network modules.

Your models should also subclass this class.

Modules can also contain other Modules, allowing to nest them in a tree structure. You can assign the submodules as regular attributes:

import torch.nn as nn
import torch.nn.functional as F

class Model(nn.Module):
    def __init__(self):
        super(Model, self).__init__()
        self.conv1 = nn.Conv2d(1, 20, 5)
        self.conv2 = nn.Conv2d(20, 20, 5)

    def forward(self, x):
        x = F.relu(self.conv1(x))
        return F.relu(self.conv2(x))

Submodules assigned in this way will be registered, and will have their parameters converted too when you call to(), etc.

Variables

training (bool) – Boolean represents whether this module is in training or evaluation mode.

forward_simple(self, x: torch.Tensor) torch.Tensor
forward_with_intermediate(self, x: torch.Tensor, **kwargs) List[torch.Tensor]
forward(self, x)