Сложенный автоэнкодер - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть базовая структура автоэнкодера.Я хочу изменить его на сложенный автоэнкодер.От того, что я знаю, сложенный AE отличается в двух отношениях:

  1. Он состоит из слоев редких ванильных AE
  2. Он выполняет послойное обучение.

Я хочу знать, является ли необходимость в разреженности для суммированных АЕ, или просто увеличение количества скрытых слоев в структуре ванильной АЕ сделает его АЕ в стеке?

class Autoencoder(Chain):
  def __init__(self):
    super().__init__()
    with self.init_scope():
  # encoder part
      self.l1 = L.Linear(1308608,500)
      self.l2 = L.Linear(500,100)
  # decoder part
      self.l3 = L.Linear(100,500)
      self.l4 = L.Linear(500,1308608)

  def forward(self,x):
      h = self.encode(x)
      x_recon = self.decode(h)
      return x_recon

  def __call__(self,x):
      x_recon = self.forward(x)
      loss = F.mean_squared_error(h, x)
      return loss

  def encode(self, x, train=True):
      h = F.dropout(self.activation(self.l1(x)), train=train)
      return self.activation(self.l2(x))

  def decode(self, h, train=True):
      h = self.activation(self.l3(h))
      return self.l4(x)

1 Ответ

1 голос
/ 26 апреля 2019

Кажется, что это редкость, если часто упоминается в контексте сложенного автоэнкодера, но не обязательно. Следовательно, я не думаю, что это необходимо.

...