|
@@ -0,0 +1,204 @@
|
|
|
+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.SpatialFullConvolution(64 -> 3, 4x4, 2,2, 3,3)
|
|
|
+ }
|
|
|
+ (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
|
|
|
+}
|