How to declare and train RNN/LSTM in skorch?

the skorch library is amazing. it’s really very easy to use but I’m having troubles implementing an LSTM model with it. Since it abstract the training loop and all, I don’t know what should be returned in the forward function of the nn model. My task is regression, the problem is I found many results on the internet for word embeddings and something like that, I don’t need that, my task is simpler than that I only want to do regression like predicting house prices for example. here is my LSTM declaration

 class LstmNetwork(nn.Module):

    def __init__(self, n_features, n_lstm_hidden=16, n_fc_hidden=64, n_out=2, num_layers=1, bi=False, dropout=0.0):

        self.n_features = n_features
        self.n_lstm_hidden = n_lstm_hidden
        self.n_fc_hidden = n_fc_hidden
        self.n_out = n_out
        self.num_layers = num_layers = bi
        self.dropout = dropout
        self.hidden_cell = self.init_hidden()

        self.lstm = nn.LSTM(

        self.fc = nn.Linear(

    def init_hidden(self):

        return (torch.zeros(1, 1, self.n_lstm_hidden),
                torch.zeros(1, 1, self.n_lstm_hidden))

    def forward(self, x):
        # I found this example on internet, but there is no initialisation for hidden states here, I tried to 
       # initialize hidden states as stated above but it throws an error when I run it on GPU
     # also I thought that we should also return the hidden states in the forward function in pytorch but 
    # if I do that here I get an Error.
    # I'm not sure if my declaration is correct, can someone help?
        out, hn = self.lstm(x)
        out = self.fc(out)
        return out

please help me out with this, I’m struggling for two weeks now