Ejemplo n.º 1
0
 def __init__(
     self,
     in_dim,
     hidden_dim,
     out_dim,
     num_layers=1,
     dropout=0.5,
     num_gaussians=8,
     dim_wise=False,
     init_type="none",
 ):
     super(MDNv2, self).__init__()
     model = [nn.Linear(in_dim, hidden_dim), nn.ReLU(), nn.Dropout(dropout)]
     if num_layers > 1:
         for _ in range(num_layers - 1):
             model += [
                 nn.Linear(hidden_dim, hidden_dim),
                 nn.ReLU(),
                 nn.Dropout(dropout),
             ]
     model += [
         MDNLayer(
             in_dim=hidden_dim,
             out_dim=out_dim,
             num_gaussians=num_gaussians,
             dim_wise=dim_wise,
         )
     ]
     self.model = nn.Sequential(*model)
     init_weights(self, init_type)
Ejemplo n.º 2
0
 def __init__(
     self,
     in_dim,
     hidden_dim,
     out_dim,
     num_layers=1,
     num_gaussians=8,
     dim_wise=False,
     init_type="none",
     **kwargs,
 ):
     super(MDN, self).__init__()
     if "dropout" in kwargs:
         warn(
             "dropout argument in MDN is deprecated"
             " and will be removed in future versions"
         )
     model = [nn.Linear(in_dim, hidden_dim), nn.ReLU()]
     if num_layers > 1:
         for _ in range(num_layers - 1):
             model += [nn.Linear(hidden_dim, hidden_dim), nn.ReLU()]
     model += [
         MDNLayer(
             in_dim=hidden_dim,
             out_dim=out_dim,
             num_gaussians=num_gaussians,
             dim_wise=dim_wise,
         )
     ]
     self.model = nn.Sequential(*model)
     init_weights(self, init_type)
Ejemplo n.º 3
0
 def __init__(
     self,
     in_dim,
     hidden_dim,
     out_dim,
     num_layers=1,
     bidirectional=True,
     dropout=0.0,
     num_gaussians=8,
     dim_wise=False,
     init_type="none",
 ):
     super(RMDN, self).__init__()
     self.linear = nn.Linear(in_dim, hidden_dim)
     self.relu = nn.ReLU()
     self.num_direction = 2 if bidirectional else 1
     self.lstm = nn.LSTM(
         hidden_dim,
         hidden_dim,
         num_layers,
         bidirectional=bidirectional,
         batch_first=True,
         dropout=dropout,
     )
     self.mdn = MDNLayer(
         in_dim=self.num_direction * hidden_dim,
         out_dim=out_dim,
         num_gaussians=num_gaussians,
         dim_wise=dim_wise,
     )
     init_weights(self, init_type)
Ejemplo n.º 4
0
    def __init__(
        self,
        in_dim,
        hidden_dim,
        out_dim,
        num_layers=4,
        # NOTE: you must carefully set the following parameters
        in_lf0_idx=300,
        in_lf0_min=5.3936276,
        in_lf0_max=6.491111,
        out_lf0_idx=180,
        out_lf0_mean=5.953093881972361,
        out_lf0_scale=0.23435173188961034,
        init_type="none",
        use_mdn=False,
        num_gaussians=8,
        dim_wise=False,
    ):
        super().__init__()
        self.in_lf0_idx = in_lf0_idx
        self.in_lf0_min = in_lf0_min
        self.in_lf0_max = in_lf0_max
        self.out_lf0_idx = out_lf0_idx
        self.out_lf0_mean = out_lf0_mean
        self.out_lf0_scale = out_lf0_scale
        self.use_mdn = use_mdn

        model = [
            nn.ReflectionPad1d(3),
            WNConv1d(in_dim, hidden_dim, kernel_size=7, padding=0),
        ]
        for n in range(num_layers):
            model.append(ResnetBlock(hidden_dim, dilation=2 ** n))

        last_conv_out_dim = hidden_dim if use_mdn else out_dim
        model += [
            nn.LeakyReLU(0.2),
            nn.ReflectionPad1d(3),
            WNConv1d(hidden_dim, last_conv_out_dim, kernel_size=7, padding=0),
        ]
        self.model = nn.Sequential(*model)

        if self.use_mdn:
            self.mdn_layer = MDNLayer(
                in_dim=hidden_dim,
                out_dim=out_dim,
                num_gaussians=num_gaussians,
                dim_wise=dim_wise,
            )
        else:
            self.mdn_layer = None

        init_weights(self, init_type)
Ejemplo n.º 5
0
Archivo: model.py Proyecto: ntzzc/nnsvs
 def __init__(self,
              in_dim,
              hidden_dim,
              out_dim,
              num_layers=1,
              dropout=0.0,
              num_gaussians=8):
     super(MDN, self).__init__()
     model = [nn.Linear(in_dim, hidden_dim), nn.ReLU()]
     if num_layers > 1:
         for _ in range(num_layers - 1):
             model += [nn.Linear(hidden_dim, hidden_dim), nn.ReLU()]
     model += [MDNLayer(hidden_dim, out_dim, num_gaussians=num_gaussians)]
     self.model = nn.Sequential(*model)
Ejemplo n.º 6
0
 def __init__(self,
              in_dim,
              hidden_dim,
              out_dim,
              num_layers=4,
              dropout=0.0,
              num_gaussians=8,
              dim_wise=False):
     super().__init__()
     model = [
         Conv1dResnet(in_dim, hidden_dim, hidden_dim, num_layers, dropout),
         nn.ReLU(),
         MDNLayer(hidden_dim, out_dim, num_gaussians, dim_wise)
     ]
     self.model = nn.Sequential(*model)
Ejemplo n.º 7
0
    def __init__(
        self,
        in_dim,
        hidden_dim,
        out_dim,
        num_layers=4,
        init_type="none",
        use_mdn=False,
        num_gaussians=8,
        dim_wise=False,
        **kwargs,
    ):
        super().__init__()
        self.use_mdn = use_mdn

        if "dropout" in kwargs:
            warn(
                "dropout argument in Conv1dResnet is deprecated"
                " and will be removed in future versions"
            )

        model = [
            nn.ReflectionPad1d(3),
            WNConv1d(in_dim, hidden_dim, kernel_size=7, padding=0),
        ]
        for n in range(num_layers):
            model.append(ResnetBlock(hidden_dim, dilation=2 ** n))

        last_conv_out_dim = hidden_dim if use_mdn else out_dim
        model += [
            nn.LeakyReLU(0.2),
            nn.ReflectionPad1d(3),
            WNConv1d(hidden_dim, last_conv_out_dim, kernel_size=7, padding=0),
        ]

        self.model = nn.Sequential(*model)

        if self.use_mdn:
            self.mdn_layer = MDNLayer(
                in_dim=hidden_dim,
                out_dim=out_dim,
                num_gaussians=num_gaussians,
                dim_wise=dim_wise,
            )
        else:
            self.mdn_layer = None

        init_weights(self, init_type)
Ejemplo n.º 8
0
    def __init__(
        self,
        in_dim,
        out_dim,
        num_layers=5,
        hidden_dim=256,
        kernel_size=5,
        dropout=0.5,
        init_type="none",
        use_mdn=False,
        num_gaussians=1,
        dim_wise=False,
    ):
        super().__init__()
        self.use_mdn = use_mdn

        conv = nn.ModuleList()
        for idx in range(num_layers):
            in_channels = in_dim if idx == 0 else hidden_dim
            conv += [
                nn.Sequential(
                    nn.Conv1d(
                        in_channels,
                        hidden_dim,
                        kernel_size,
                        stride=1,
                        padding=(kernel_size - 1) // 2,
                    ),
                    nn.ReLU(),
                    LayerNorm(hidden_dim, dim=1),
                    nn.Dropout(dropout),
                )
            ]
        self.conv = nn.Sequential(*conv)
        if self.use_mdn:
            self.mdn_layer = MDNLayer(
                hidden_dim, out_dim, num_gaussians=num_gaussians, dim_wise=dim_wise
            )
        else:
            self.fc = nn.Linear(hidden_dim, out_dim)

        init_weights(self, init_type)
Ejemplo n.º 9
0
Archivo: model.py Proyecto: ntzzc/nnsvs
 def __init__(self,
              in_dim,
              hidden_dim,
              out_dim,
              num_layers=1,
              bidirectional=True,
              dropout=0.0,
              num_gaussians=8):
     super(RMDN, self).__init__()
     self.linear = nn.Linear(in_dim, hidden_dim)
     self.relu = nn.ReLU()
     self.num_direction = 2 if bidirectional else 1
     self.lstm = nn.LSTM(hidden_dim,
                         hidden_dim,
                         num_layers,
                         bidirectional=bidirectional,
                         batch_first=True,
                         dropout=dropout)
     self.mdn = MDNLayer(self.num_direction * hidden_dim,
                         out_dim,
                         num_gaussians=num_gaussians)
Ejemplo n.º 10
0
    def __init__(
        self,
        in_dim,
        hidden_dim,
        out_dim,
        num_layers=4,
        num_gaussians=8,
        dim_wise=False,
        init_type="none",
        **kwargs,
    ):
        super().__init__()

        if "dropout" in kwargs:
            warn(
                "dropout argument in Conv1dResnet is deprecated"
                " and will be removed in future versions"
            )

        model = [
            Conv1dResnet(
                in_dim=in_dim,
                hidden_dim=hidden_dim,
                out_dim=hidden_dim,
                num_layers=num_layers,
            ),
            nn.ReLU(),
            MDNLayer(
                in_dim=hidden_dim,
                out_dim=out_dim,
                num_gaussians=num_gaussians,
                dim_wise=dim_wise,
            ),
        ]
        self.model = nn.Sequential(*model)
        init_weights(self, init_type)
Ejemplo n.º 11
0
    def __init__(
        self,
        in_dim,
        ff_hidden_dim=2048,
        conv_hidden_dim=1024,
        lstm_hidden_dim=256,
        out_dim=199,
        dropout=0.0,
        num_lstm_layers=2,
        bidirectional=True,
        # NOTE: you must carefully set the following parameters
        in_lf0_idx=300,
        in_lf0_min=5.3936276,
        in_lf0_max=6.491111,
        out_lf0_idx=180,
        out_lf0_mean=5.953093881972361,
        out_lf0_scale=0.23435173188961034,
        skip_inputs=False,
        init_type="none",
        use_mdn=False,
        num_gaussians=8,
        dim_wise=False,
    ):
        super().__init__()
        self.in_lf0_idx = in_lf0_idx
        self.in_lf0_min = in_lf0_min
        self.in_lf0_max = in_lf0_max
        self.out_lf0_idx = out_lf0_idx
        self.out_lf0_mean = out_lf0_mean
        self.out_lf0_scale = out_lf0_scale
        self.skip_inputs = skip_inputs
        self.use_mdn = use_mdn

        self.ff = nn.Sequential(
            nn.Linear(in_dim, ff_hidden_dim),
            nn.ReLU(),
            nn.Linear(ff_hidden_dim, ff_hidden_dim),
            nn.ReLU(),
            nn.Linear(ff_hidden_dim, ff_hidden_dim),
            nn.ReLU(),
        )

        self.conv = nn.Sequential(
            nn.ReflectionPad1d(3),
            nn.Conv1d(ff_hidden_dim + 1, conv_hidden_dim, kernel_size=7, padding=0),
            nn.BatchNorm1d(conv_hidden_dim),
            nn.ReLU(),
            nn.ReflectionPad1d(3),
            nn.Conv1d(conv_hidden_dim, conv_hidden_dim, kernel_size=7, padding=0),
            nn.BatchNorm1d(conv_hidden_dim),
            nn.ReLU(),
            nn.ReflectionPad1d(3),
            nn.Conv1d(conv_hidden_dim, conv_hidden_dim, kernel_size=7, padding=0),
            nn.BatchNorm1d(conv_hidden_dim),
            nn.ReLU(),
        )

        num_direction = 2 if bidirectional else 1
        self.lstm = nn.LSTM(
            conv_hidden_dim,
            lstm_hidden_dim,
            num_lstm_layers,
            bidirectional=True,
            batch_first=True,
            dropout=dropout,
        )

        if self.skip_inputs:
            last_in_dim = num_direction * lstm_hidden_dim + in_dim
        else:
            last_in_dim = num_direction * lstm_hidden_dim

        if self.use_mdn:
            self.mdn_layer = MDNLayer(
                last_in_dim, out_dim, num_gaussians=num_gaussians, dim_wise=dim_wise
            )
        else:
            self.fc = nn.Linear(last_in_dim, out_dim)

        init_weights(self, init_type)