Beispiel #1
0
    def __init__(self, nc, ndf, alpha, beta, ngpu=1):
        super(DiscriminatorNetVBN, self).__init__()

        self.ngpu = ngpu
        self.net = nnrd.RelevanceNet(
            nnrd.Layer(
                nnrd.FirstConvolution(nc, ndf, 5, 1, 2),
                nnrd.ReLu(),
            ),
            nnrd.Layer(
                nnrd.NextConvolution(ndf, ndf, 4, '0', 2, 1, alpha=alpha),
                nnrd.BatchNorm2d(ndf),
                nnrd.ReLu(),
            ),
            # state size. (ndf) x 32 x 32
            nnrd.Layer(
                nnrd.NextConvolution(ndf, ndf * 2, 4, '1', 2, 1, alpha=alpha),
                nnrd.BatchNorm2d(ndf * 2),
                nnrd.ReLu(),
            ),
            # state size. (ndf*2) x 16 x 16
            nnrd.Layer(
                nnrd.NextConvolution(ndf * 2,
                                     ndf * 4,
                                     4,
                                     '2',
                                     2,
                                     1,
                                     alpha=alpha),
                nnrd.BatchNorm2d(ndf * 4),
                nnrd.ReLu(),
            ),
            # state size. (ndf*4) x 8 x 8
            nnrd.Layer(
                nnrd.NextConvolution(ndf * 4,
                                     ndf * 8,
                                     4,
                                     '3',
                                     2,
                                     1,
                                     alpha=alpha),
                nnrd.BatchNorm2d(ndf * 8),
                nnrd.ReLu(),
            ),
            # state size. (ndf*8) x 4 x 4
            nnrd.Layer(nnrd.NextConvolution(ndf * 8, 1, 4, '4', 1, 0),
                       nn.Sigmoid()))
Beispiel #2
0
    def __init__(self, ngpu):
        super(DiscriminatorNet, self).__init__()
        self.ngpu = ngpu

        # All attributes are automatically assigned to the modules parameter list
        n_features = 784
        n_out = 1
        self.net = nnrd.RelevanceNet(
            nnrd.Layer(nnrd.FirstLinear(n_features, 1024), nnrd.ReLu(),
                       nnrd.Dropout(0.3)),
            nnrd.Layer(nnrd.NextLinear(1024, 1024), nnrd.ReLu(),
                       nnrd.Dropout(0.3)),
            nnrd.Layer(
                nnrd.NextLinear(1024, 512),
                nnrd.ReLu(),
                nnrd.Dropout(0.3),
            ),
            nnrd.Layer(nnrd.NextLinear(512, 512), nnrd.ReLu(),
                       nnrd.Dropout(0.3)),
            nnrd.Layer(
                nnrd.NextLinear(512, 256),
                nnrd.ReLu(),
                nnrd.Dropout(0.3),
            ), nnrd.Layer(nnrd.NextLinear(256, n_out), nn.Sigmoid()))
Beispiel #3
0
    def __init__(self, nc, ndf, alpha, beta, ngpu=1):
        super(DiscriminatorNetLessCheckerboard, self).__init__()

        self.ngpu = ngpu

        self.net = nnrd.RelevanceNet(
            nnrd.Layer(
                nnrd.FirstConvolution(in_channels=nc,
                                      out_channels=ndf,
                                      kernel_size=5,
                                      stride=1,
                                      padding=0),
                nnrd.ReLu(),
            ),
            nnrd.Layer(
                nnrd.NextConvolution(in_channels=ndf,
                                     out_channels=ndf,
                                     kernel_size=4,
                                     name='0',
                                     stride=2,
                                     padding=1,
                                     alpha=alpha),
                nnrd.BatchNorm2d(ndf),
                nnrd.ReLu(),
                nnrd.Dropout(0.3),
            ),
            # state size. (ndf) x 32 x 32
            nnrd.Layer(
                nnrd.NextConvolution(in_channels=ndf,
                                     out_channels=ndf * 2,
                                     kernel_size=4,
                                     name='1',
                                     stride=2,
                                     padding=1,
                                     alpha=alpha),
                nnrd.BatchNorm2d(ndf * 2),
                nnrd.ReLu(),
                nnrd.Dropout(0.3),
            ),
            # state size. (ndf*2) x 16 x 16
            nnrd.Layer(
                nnrd.NextConvolution(in_channels=ndf * 2,
                                     out_channels=ndf * 4,
                                     kernel_size=4,
                                     name='2',
                                     stride=2,
                                     padding=1,
                                     alpha=alpha),
                nnrd.BatchNorm2d(ndf * 4),
                nnrd.ReLu(),
                nnrd.Dropout(0.3),
            ),  # state size. (ndf*2) x 16 x 16
            # state size. (ndf*4) x 8 x 8
            nnrd.Layer(
                nnrd.NextConvolution(in_channels=ndf * 4,
                                     out_channels=ndf * 8,
                                     kernel_size=4,
                                     name='3',
                                     stride=2,
                                     padding=1,
                                     alpha=alpha),
                nnrd.BatchNorm2d(ndf * 8),
                nnrd.ReLu(),
                nnrd.Dropout(0.3),
            ),
            # state size. (ndf*8) x 4 x 4
            nnrd.Layer(
                nnrd.NextConvolutionEps(in_channels=ndf * 8,
                                        out_channels=1,
                                        kernel_size=4,
                                        name='4',
                                        stride=1,
                                        padding=0), nn.Sigmoid()))