credit.models.unet404
=====================

.. py:module:: credit.models.unet404


Attributes
----------

.. autoapisummary::

   credit.models.unet404.logger
   credit.models.unet404.supported_models
   credit.models.unet404.supported_encoders


Classes
-------

.. autoapisummary::

   credit.models.unet404.SegmentationModel404


Functions
---------

.. autoapisummary::

   credit.models.unet404.load_premade_encoder_model


Module Contents
---------------

.. py:data:: logger

.. py:data:: supported_models

.. py:data:: supported_encoders
   :value: ['resnet18', 'resnet34', 'resnet50', 'resnet101', 'resnet152', 'resnext50_32x4d',...


.. py:function:: load_premade_encoder_model(model_conf)

.. py:class:: SegmentationModel404(conf)

   Bases: :py:obj:`torch.nn.Module`


   Base class for all neural network modules.

   Your models should also subclass this class.

   Modules can also contain other Modules, allowing them to be nested 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) -> None:
               super().__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 also have their
   parameters converted when you call :meth:`to`, etc.

   .. note::
       As per the example above, an ``__init__()`` call to the parent class
       must be made before assignment on the child.

   :ivar training: Boolean represents whether this module is in training or
                   evaluation mode.
   :vartype training: bool


   .. py:attribute:: variables


   .. py:attribute:: frames


   .. py:attribute:: static_variables


   .. py:attribute:: model


   .. py:method:: forward(x)


