Hello. Below is my code sample. I would like to ask how can I do to get the output from second dropout of decoder?
class AutoEncoder(nn.Module):
def __init__(self, encoder_dim, decoder_dim, drops=[0.7, 0.5, 0.5], td_units=100):
super(AutoEncoder, self).__init__()
self.encoder_dim = encoder_dim
self.decoder_dim = decoder_dim
self.td_units = td_units
self.gru = nn.GRU(encoder_dim, decoder_dim, bidirectional=True)
self.drop0 = drops[0]
self.drop1 = drops[1]
self.r_drop = drops[2]
#encoder
self.encoder = nn.Sequential(
nn.Linear(self.encoder_dim, 3*self.td_units),
nn.Tanh(),
nn.Dropout(p = self.drop0),
nn.Linear(3*self.td_units, 2*self.td_units),
nn.Tanh(),
nn.Dropout(p = self.drop0),
nn.Linear(2*self.td_units, 1*self.td_units),
nn.Tanh(),
nn.Dropout(p = self.drop0)
)
#decoder
self.decoder = nn.Sequential(
nn.Linear(self.td_units, 2*self.td_units),
nn.Tanh(),
nn.Dropout(p = self.drop0),
nn.Linear(2*self.td_units, 3*self.td_units),
nn.Tanh(),
nn.Dropout(p = self.drop0),
nn.Linear(3*self.td_units, self.decoder_dim),
nn.Tanh())
def forward(self,x):
x = self.encoder(x)
y = self.decoder(x)
return y
Any help is fine. Thanks.