(self,inplane=3,norm_layer=nn.BatchNorm2d, bn_eps=1e-5,
                 bn_momentum=0.1,inplace =True)
Constructor
        Args:
            num_classes: number of classes
Constructor
        Args:
            num_classes: number of classes
Constructor Args : num_classes : number of classes
def __init__(self,inplane=3,norm_layer=nn.BatchNorm2d, bn_eps=1e-5,
                 bn_momentum=0.1,inplace =True):
        """ Constructor
        Args:
            num_classes: number of classes
        """
        super(Xception, self).__init__()


        self.conv1 = nn.Conv2d(inplane, 32, 3,2, 1, bias=False)
        self.bn1 = norm_layer(32,eps=bn_eps, momentum=bn_momentum)
        self.relu1 = nn.ReLU(inplace=inplace)

        self.conv2 = nn.Conv2d(32,64,3,padding =1,bias=False)
        self.bn2 = norm_layer(64,eps=bn_eps, momentum=bn_momentum)
        self.relu2 = nn.ReLU(inplace=inplace)

        # firs two conv

        #do relu here

        #1/2
        self.block1=Block(64,128,2,2,norm_layer = norm_layer,eps = bn_eps,momentum = bn_momentum,start_with_relu=False,grow_first=True)
        #1/4
        self.block2=Block(128,256,2,2,norm_layer = norm_layer,eps = bn_eps,momentum = bn_momentum,start_with_relu=True,grow_first=True)
        #1/8
        self.block3=Block(256,728,2,2,norm_layer = norm_layer,eps = bn_eps,momentum = bn_momentum,start_with_relu=True,grow_first=True)

        self.block4=Block(728,728,3,1,norm_layer = norm_layer,eps = bn_eps,momentum = bn_momentum,start_with_relu=True,grow_first=True)
        self.block5=Block(728,728,3,1,norm_layer = norm_layer,eps = bn_eps,momentum = bn_momentum,start_with_relu=True,grow_first=True)
        self.block6=Block(728,728,3,1,norm_layer = norm_layer,eps = bn_eps,momentum = bn_momentum,start_with_relu=True,grow_first=True)
        self.block7=Block(728,728,3,1,norm_layer = norm_layer,eps = bn_eps,momentum = bn_momentum,start_with_relu=True,grow_first=True)

        self.block8=Block(728,728,3,1,norm_layer = norm_layer,eps = bn_eps,momentum = bn_momentum,start_with_relu=True,grow_first=True)
        self.block9=Block(728,728,3,1,norm_layer = norm_layer,eps = bn_eps,momentum = bn_momentum,start_with_relu=True,grow_first=True)
        self.block10=Block(728,728,3,1,norm_layer = norm_layer,eps = bn_eps,momentum = bn_momentum,start_with_relu=True,grow_first=True)
        self.block11=Block(728,728,3,1,norm_layer = norm_layer,eps = bn_eps,momentum = bn_momentum,start_with_relu=True,grow_first=True)

        #1/16
        self.block12=Block(728,1024,2,2,norm_layer = norm_layer,eps = bn_eps,momentum = bn_momentum,start_with_relu=True,grow_first=False)

        self.conv3 = SeparableConv2d(1024,1536,3,1,1)
        self.bn3 = norm_layer(1536,eps=bn_eps, momentum=bn_momentum)
        self.relu3 = nn.ReLU(inplace=inplace)

        #do relu here
        self.conv4 = SeparableConv2d(1536,2048,3,1,1)
        self.bn4 = norm_layer(2048,eps=bn_eps, momentum=bn_momentum)

        self.relu4 = nn.ReLU(inplace)
def __init__ ( self , inplane = 3 , norm_layer = nn . BatchNorm2d , bn_eps = 1e-5 , bn_momentum = 0.1 , inplace = True ) : super ( Xception , self ) . __init__ ( ) self . conv1 = nn . Conv2d ( inplane , 32 , 3 , 2 , 1 , bias = False ) self . bn1 = norm_layer ( 32 , eps = bn_eps , momentum = bn_momentum ) self . relu1 = nn . ReLU ( inplace = inplace ) self . conv2 = nn . Conv2d ( 32 , 64 , 3 , padding = 1 , bias = False ) self . bn2 = norm_layer ( 64 , eps = bn_eps , momentum = bn_momentum ) self . relu2 = nn . ReLU ( inplace = inplace ) # firs two conv #do relu here #1/2 self . block1 = Block ( 64 , 128 , 2 , 2 , norm_layer = norm_layer , eps = bn_eps , momentum = bn_momentum , start_with_relu = False , grow_first = True ) #1/4 self . block2 = Block ( 128 , 256 , 2 , 2 , norm_layer = norm_layer , eps = bn_eps , momentum = bn_momentum , start_with_relu = True , grow_first = True ) #1/8 self . block3 = Block ( 256 , 728 , 2 , 2 , norm_layer = norm_layer , eps = bn_eps , momentum = bn_momentum , start_with_relu = True , grow_first = True ) self . block4 = Block ( 728 , 728 , 3 , 1 , norm_layer = norm_layer , eps = bn_eps , momentum = bn_momentum , start_with_relu = True , grow_first = True ) self . block5 = Block ( 728 , 728 , 3 , 1 , norm_layer = norm_layer , eps = bn_eps , momentum = bn_momentum , start_with_relu = True , grow_first = True ) self . block6 = Block ( 728 , 728 , 3 , 1 , norm_layer = norm_layer , eps = bn_eps , momentum = bn_momentum , start_with_relu = True , grow_first = True ) self . block7 = Block ( 728 , 728 , 3 , 1 , norm_layer = norm_layer , eps = bn_eps , momentum = bn_momentum , start_with_relu = True , grow_first = True ) self . block8 = Block ( 728 , 728 , 3 , 1 , norm_layer = norm_layer , eps = bn_eps , momentum = bn_momentum , start_with_relu = True , grow_first = True ) self . block9 = Block ( 728 , 728 , 3 , 1 , norm_layer = norm_layer , eps = bn_eps , momentum = bn_momentum , start_with_relu = True , grow_first = True ) self . block10 = Block ( 728 , 728 , 3 , 1 , norm_layer = norm_layer , eps = bn_eps , momentum = bn_momentum , start_with_relu = True , grow_first = True ) self . block11 = Block ( 728 , 728 , 3 , 1 , norm_layer = norm_layer , eps = bn_eps , momentum = bn_momentum , start_with_relu = True , grow_first = True ) #1/16 self . block12 = Block ( 728 , 1024 , 2 , 2 , norm_layer = norm_layer , eps = bn_eps , momentum = bn_momentum , start_with_relu = True , grow_first = False ) self . conv3 = SeparableConv2d ( 1024 , 1536 , 3 , 1 , 1 ) self . bn3 = norm_layer ( 1536 , eps = bn_eps , momentum = bn_momentum ) self . relu3 = nn . ReLU ( inplace = inplace ) #do relu here self . conv4 = SeparableConv2d ( 1536 , 2048 , 3 , 1 , 1 ) self . bn4 = norm_layer ( 2048 , eps = bn_eps , momentum = bn_momentum ) self . relu4 = nn . ReLU ( inplace )