Ejemplo n.º 1
0
 def __init__(self,
              dimensionality,
              in_planes,
              out_planes,
              activation=hypothesis.default.activation,
              batchnorm=True,
              bias=False,
              dilation=1,
              downsample=None,
              stride=1,
              groups=1,
              width_per_group=64):
     super(BasicBlock, self).__init__()
     # Load the requested modules depending on the dimensionality.
     modules = load_modules(dimensionality)
     self.module_convolution = modules[0]
     self.module_batchnorm = modules[1]
     self.module_maxpool = modules[2]
     self.module_adaptive_avg_pool = modules[3]
     # Block properties.
     self.module_activation = activation
     self.activation = activation()
     self.bias = bias
     self.batchnorm = batchnorm
     self.dilation = dilation
     self.in_planes = in_planes
     self.out_planes = out_planes
     self.stride = stride
     # Assign the downsampling mapping, if specified.
     self.downsample_mapping = downsample
     # Build the residual mapping.
     self.residual_mapping = self._build_residual_mapping()
Ejemplo n.º 2
0
    def _load_configuration(self, depth):
        modules = load_modules(self.dimensionality)
        configurations = {
            18: load_configuration_18,
            34: load_configuration_34,
            50: load_configuration_50,
            101: load_configuration_101,
            152: load_configuration_152
        }
        # Check if the desired configuration exists.
        if depth not in configurations.keys():
            raise ValueError("The specified ResNet configuration (", depth,
                             ") does not exist.")
        configuration_loader = configurations[depth]
        block, blocks_per_layer = configuration_loader()

        return block, blocks_per_layer, modules