Hi
I am going through several tutorials about seq2seq in pytorch but most of them are with using attention. I want to create simple seq2seq model.
I just need to know how to pass context vector into decorder.
Working on english to French dataset.
Below is my code:
class Encorder(nn.Module):
def init(self,n_vocab,n_embed,hidden_size):super(Encorder,self).__init__() self.hidden_size = hidden_size self.embed = nn.Embedding(n_vocab+1,n_embed) self.RNN = nn.RNN(n_embed,hidden_size,batch_first = True) def forward(self,x): x = self.embed(x) x,hidden = self.RNN(x) assert x[:,-1,:].shape == hidden.squeeze(0).shape return x[:,-1,:] def initHidden(self): return torch.zeros(1, 1, self.hidden_size, device=device)
For Decorder
class decorder(nn.Module):
def init(self,n_vocab,n_embed,hidden_size,output_size):
super(decorder,self).init()self.hidden_size = hidden_size self.embed = nn.Embedding(n_vocab+1,n_embed) self.RNN = nn.RNN(n_embed,hidden_size,batch_first = True) self.fc1 = nn.Linear(hidden_size,output_size) def forward(self,x,hidden): #x = x.unsqueeze(0) x = self.embed(x) x,hidden = self.RNN(x,hidden) x = self.fc1(x) return x def initHidden(self): return torch.zeros(1, 1, self.hidden_size, device=device)
Please let me know if some one need more info. I just want to make basic seq2seq (without attention)
Thanks in advance.
Stay safe. !!