Source code for msdnet.dilations

#-----------------------------------------------------------------------
#Copyright 2019 Centrum Wiskunde & Informatica, Amsterdam
#
#Author: Daniel M. Pelt
#Contact: D.M.Pelt@cwi.nl
#Website: http://dmpelt.github.io/msdnet/
#License: MIT
#
#This file is part of MSDNet, a Python implementation of the
#Mixed-Scale Dense Convolutional Neural Network.
#-----------------------------------------------------------------------

"""
Module for defining how to pick dilations in the MS-D networks.
"""

import abc

[docs]class Dilations(abc.ABC): """Base class implementing dilations."""
[docs] @abc.abstractmethod def reset(self): """Reset object to initial state.""" pass
[docs] @abc.abstractmethod def nextdil(self): """Return next dilation factor. :return: next dilation factor. """ pass
[docs]class IncrementDilations(Dilations): """Dilations that increase by 1 until a certain limit (as in paper). :param maxv: maximum dilation :param minv: (optional) minimum dilation :param start: (optional) starting dilation """ def __init__(self, maxv, minv=1, start=1): self.mx = maxv self.mn = minv self.start = start self.reset()
[docs] def reset(self): self.i = self.start
[docs] def nextdil(self): vl = self.i self.i+=1 if self.i>self.mx: self.i = self.mn return vl