nn.Sequential { [input -> (1) -> (2) -> (3) -> (4) -> output] (1): nn.Sequential { [input -> (1) -> (2) -> (3) -> (4) -> (5) -> output] (1): nn.Sequential { [input -> (1) -> (2) -> (3) -> (4) -> output] (1): nn.SpatialConvolutionMM(3 -> 32, 3x3) (2): nn.LeakyReLU(0.1) (3): nn.SpatialConvolutionMM(32 -> 64, 3x3) (4): nn.LeakyReLU(0.1) } (2): nn.Sequential { [input -> (1) -> (2) -> output] (1): nn.ConcatTable { input |`-> (1): nn.Sequential { | [input -> (1) -> (2) -> (3) -> (4) -> (5) -> output] | (1): nn.SpatialConvolutionMM(64 -> 64, 2x2, 2,2) | (2): nn.LeakyReLU(0.1) | (3): nn.Sequential { | [input -> (1) -> (2) -> (3) -> (4) -> (5) -> (6) -> output] | (1): nn.SpatialConvolutionMM(64 -> 128, 3x3) | (2): nn.LeakyReLU(0.1) | (3): nn.SpatialConvolutionMM(128 -> 64, 3x3) | (4): nn.LeakyReLU(0.1) | (5): nn.ConcatTable { | input | |`-> (1): nn.Identity | `-> (2): nn.Sequential { | [input -> (1) -> (2) -> (3) -> (4) -> (5) -> output] | (1): nn.Sequential { | [input -> (1) -> (2) -> (3) -> output] | (1): nn.Mean | (2): nn.Mean | (3): nn.View(-1, 64, 1, 1) | } | (2): nn.SpatialConvolutionMM(64 -> 8, 1x1) | (3): nn.ReLU | (4): nn.SpatialConvolutionMM(8 -> 64, 1x1) | (5): nn.Sigmoid | } | ... -> output | } | (6): w2nn.ScaleTable | } | (4): nn.SpatialFullConvolution(64 -> 64, 2x2, 2,2) | (5): nn.LeakyReLU(0.1) | } `-> (2): nn.SpatialZeroPadding(l=-4, r=-4, t=-4, b=-4) ... -> output } (2): nn.CAddTable } (3): nn.SpatialConvolutionMM(64 -> 64, 3x3) (4): nn.LeakyReLU(0.1) (5): nn.SpatialConvolutionMM(64 -> 3, 3x3) } (2): nn.ConcatTable { input |`-> (1): nn.Sequential { | [input -> (1) -> (2) -> (3) -> (4) -> (5) -> output] | (1): nn.Sequential { | [input -> (1) -> (2) -> (3) -> (4) -> output] | (1): nn.SpatialConvolutionMM(3 -> 32, 3x3) | (2): nn.LeakyReLU(0.1) | (3): nn.SpatialConvolutionMM(32 -> 64, 3x3) | (4): nn.LeakyReLU(0.1) | } | (2): nn.Sequential { | [input -> (1) -> (2) -> output] | (1): nn.ConcatTable { | input | |`-> (1): nn.Sequential { | | [input -> (1) -> (2) -> (3) -> (4) -> (5) -> output] | | (1): nn.SpatialConvolutionMM(64 -> 64, 2x2, 2,2) | | (2): nn.LeakyReLU(0.1) | | (3): nn.Sequential { | | [input -> (1) -> (2) -> (3) -> output] | | (1): nn.Sequential { | | [input -> (1) -> (2) -> (3) -> (4) -> (5) -> (6) -> output] | | (1): nn.SpatialConvolutionMM(64 -> 64, 3x3) | | (2): nn.LeakyReLU(0.1) | | (3): nn.SpatialConvolutionMM(64 -> 128, 3x3) | | (4): nn.LeakyReLU(0.1) | | (5): nn.ConcatTable { | | input | | |`-> (1): nn.Identity | | `-> (2): nn.Sequential { | | [input -> (1) -> (2) -> (3) -> (4) -> (5) -> output] | | (1): nn.Sequential { | | [input -> (1) -> (2) -> (3) -> output] | | (1): nn.Mean | | (2): nn.Mean | | (3): nn.View(-1, 128, 1, 1) | | } | | (2): nn.SpatialConvolutionMM(128 -> 16, 1x1) | | (3): nn.ReLU | | (4): nn.SpatialConvolutionMM(16 -> 128, 1x1) | | (5): nn.Sigmoid | | } | | ... -> output | | } | | (6): w2nn.ScaleTable | | } | | (2): nn.Sequential { | | [input -> (1) -> (2) -> output] | | (1): nn.ConcatTable { | | input | | |`-> (1): nn.Sequential { | | | [input -> (1) -> (2) -> (3) -> (4) -> (5) -> output] | | | (1): nn.SpatialConvolutionMM(128 -> 128, 2x2, 2,2) | | | (2): nn.LeakyReLU(0.1) | | | (3): nn.Sequential { | | | [input -> (1) -> (2) -> (3) -> (4) -> (5) -> (6) -> output] | | | (1): nn.SpatialConvolutionMM(128 -> 256, 3x3) | | | (2): nn.LeakyReLU(0.1) | | | (3): nn.SpatialConvolutionMM(256 -> 128, 3x3) | | | (4): nn.LeakyReLU(0.1) | | | (5): nn.ConcatTable { | | | input | | | |`-> (1): nn.Identity | | | `-> (2): nn.Sequential { | | | [input -> (1) -> (2) -> (3) -> (4) -> (5) -> output] | | | (1): nn.Sequential { | | | [input -> (1) -> (2) -> (3) -> output] | | | (1): nn.Mean | | | (2): nn.Mean | | | (3): nn.View(-1, 128, 1, 1) | | | } | | | (2): nn.SpatialConvolutionMM(128 -> 16, 1x1) | | | (3): nn.ReLU | | | (4): nn.SpatialConvolutionMM(16 -> 128, 1x1) | | | (5): nn.Sigmoid | | | } | | | ... -> output | | | } | | | (6): w2nn.ScaleTable | | | } | | | (4): nn.SpatialFullConvolution(128 -> 128, 2x2, 2,2) | | | (5): nn.LeakyReLU(0.1) | | | } | | `-> (2): nn.SpatialZeroPadding(l=-4, r=-4, t=-4, b=-4) | | ... -> output | | } | | (2): nn.CAddTable | | } | | (3): nn.Sequential { | | [input -> (1) -> (2) -> (3) -> (4) -> (5) -> (6) -> output] | | (1): nn.SpatialConvolutionMM(128 -> 64, 3x3) | | (2): nn.LeakyReLU(0.1) | | (3): nn.SpatialConvolutionMM(64 -> 64, 3x3) | | (4): nn.LeakyReLU(0.1) | | (5): nn.ConcatTable { | | input | | |`-> (1): nn.Identity | | `-> (2): nn.Sequential { | | [input -> (1) -> (2) -> (3) -> (4) -> (5) -> output] | | (1): nn.Sequential { | | [input -> (1) -> (2) -> (3) -> output] | | (1): nn.Mean | | (2): nn.Mean | | (3): nn.View(-1, 64, 1, 1) | | } | | (2): nn.SpatialConvolutionMM(64 -> 8, 1x1) | | (3): nn.ReLU | | (4): nn.SpatialConvolutionMM(8 -> 64, 1x1) | | (5): nn.Sigmoid | | } | | ... -> output | | } | | (6): w2nn.ScaleTable | | } | | } | | (4): nn.SpatialFullConvolution(64 -> 64, 2x2, 2,2) | | (5): nn.LeakyReLU(0.1) | | } | `-> (2): nn.SpatialZeroPadding(l=-16, r=-16, t=-16, b=-16) | ... -> output | } | (2): nn.CAddTable | } | (3): nn.SpatialConvolutionMM(64 -> 64, 3x3) | (4): nn.LeakyReLU(0.1) | (5): nn.SpatialConvolutionMM(64 -> 3, 3x3) | } `-> (2): nn.SpatialZeroPadding(l=-20, r=-20, t=-20, b=-20) ... -> output } (3): nn.ConcatTable { input |`-> (1): nn.Sequential { | [input -> (1) -> (2) -> output] | (1): nn.CAddTable | (2): w2nn.InplaceClip01 | } `-> (2): nn.Sequential { [input -> (1) -> (2) -> output] (1): nn.SelectTable(2) (2): w2nn.InplaceClip01 } ... -> output } (4): w2nn.AuxiliaryLossTable }