def __init__()

in models/s2s_convlstm.py [0:0]


    def __init__(self, img_ch, n_ctx,
            n_hid=64, 
            n_z=10,
            enc_dim=512, 
            share_prior_enc=False, 
            reverse_post=False,
        ):
        super().__init__()

        self.n_ctx = n_ctx
        self.enc_dim = enc_dim

        self.latent_emb_net = nn.ModuleList([
            layers.DcConv(img_ch, n_hid, 4, 2, 1),
            layers.DcConv(n_hid, n_hid*2, 4, 2, 1),
            layers.DcConv(n_hid*2, n_hid*4, 4, 2, 1),
            layers.DcConv(n_hid*4, n_hid*8, 4, 2, 1),
            layers.DcConv(n_hid*8, enc_dim*2, 4, 1, 0, norm=partial(nn.GroupNorm, 1)),
        ])

        self.det_emb_net = nn.ModuleList([
            layers.DcConv(img_ch, n_hid, 4, 2, 1),
            layers.DcConv(n_hid, n_hid*2, 4, 2, 1),
            layers.DcConv(n_hid*2, n_hid*4, 4, 2, 1),
            layers.DcConv(n_hid*4, n_hid*8, 4, 2, 1),
            layers.DcConv(n_hid*8, enc_dim*2, 4, 1, 0, norm=partial(nn.GroupNorm, 1)),
        ])

        mult = 1
        self.render_net = nn.ModuleList([
            layers.DcUpConv(enc_dim, n_hid*8, 4, 1, 0),
            layers.ConvLSTM(n_hid*8, n_hid*8),
            layers.DcUpConv(n_hid*8*mult, n_hid*4, 4, 2, 1),
            layers.ConvLSTM(n_hid*4, n_hid*4),
            layers.DcUpConv(n_hid*4*mult, n_hid*2, 4, 2, 1),
            layers.ConvLSTM(n_hid*2, n_hid*2),
            layers.DcUpConv(n_hid*2*mult, n_hid, 4, 2, 1),
            layers.ConvLSTM(n_hid, n_hid),
            layers.DcUpConv(n_hid*mult, n_hid, 4, 2, 1),
            layers.TemporalConv2d(n_hid*1, img_ch, 3, 1, 1),
        ])

        self.det_init_net = nn.Sequential(
            layers.DcConv(2*enc_dim*self.n_ctx, 2*enc_dim*self.n_ctx, 1),
            layers.TemporalConv2d(2*enc_dim*self.n_ctx, 2*enc_dim, 1)
        )

        self.prior_net = nn.ModuleList([
            layers.TemporalConv2d(enc_dim*2, n_z*2, 1),
            layers.ConvLSTM(n_z*2, enc_dim, norm=True),
            layers.TemporalConv2d(enc_dim, n_z*2, 1),
        ])

        self.posterior_net = nn.ModuleList([
            layers.TemporalConv2d(enc_dim*2, n_z*2, 1),
            layers.ConvLSTM(n_z*2, enc_dim, norm=True),
            layers.TemporalConv2d(enc_dim, n_z*2, 1),
        ])

        self.forward_model = layers.ConvLSTM(n_z + enc_dim*2, enc_dim)

        self.prior_init_net = nn.Sequential(
            layers.DcConv(2*enc_dim*self.n_ctx, 2*enc_dim*self.n_ctx, 1),
            layers.TemporalConv2d(2*enc_dim*self.n_ctx, 2*enc_dim, 1)
        )

        self.posterior_init_net = nn.Sequential(
            layers.DcConv(2*enc_dim*self.n_ctx, 2*enc_dim*self.n_ctx, 1),
            layers.TemporalConv2d(2*enc_dim*self.n_ctx, 2*enc_dim, 1)
        )

        # Connection list
        self.det_init_connections = {
            1: 3,
            3: 2,
            5: 1,
            7: 0,
        }

        # Connection branches
        self.det_init_nets = nn.ModuleDict({
            'layer_3': nn.Sequential(
                layers.DcConv(n_hid*8*self.n_ctx, n_hid*8*self.n_ctx, 1),
                layers.TemporalConv2d(n_hid*8*self.n_ctx, n_hid*8*2, 1)
            ),
            'layer_2': nn.Sequential(
                layers.DcConv(n_hid*4*self.n_ctx, n_hid*4*self.n_ctx, 1),
                layers.TemporalConv2d(n_hid*4*self.n_ctx, n_hid*4*2, 1)
            ),
            'layer_1': nn.Sequential(
                layers.DcConv(n_hid*2*self.n_ctx, n_hid*2*self.n_ctx, 1),
                layers.TemporalConv2d(n_hid*2*self.n_ctx, n_hid*2*2, 1)
            ),
            'layer_0': nn.Sequential(
                layers.DcConv(n_hid*1*self.n_ctx, n_hid*1*self.n_ctx, 1),
                layers.TemporalConv2d(n_hid*1*self.n_ctx, n_hid*1*2, 1)
            ),
        })