While building a semantic model I was having a runtime error that I mentioned in the title.
To solve this error I am not sure if it is my batching, train function, model architecture, or hyperparameters that is causing this error. As a result I have linked the kaggle notebook where you can visualize the entire notebook and run the notebook on the free Kaggle virtual machine with access to all the data I used.
My model architecture is since I think maybe the error can be in here. If I am wrong please click the link to see the whole code and please tell me the solution.
class LSTM(nn.Module): def __init__(self,vocab_size, embedding_dim, hidden_size, n_layers): super(LSTM, self).__init__() self.hidden_size = hidden_size self.n_layers = n_layers self.embedding = nn.Embedding(vocab_size, embedding_dim) self.lstm1 = nn.LSTM(embedding_dim, self.hidden_size, num_layers = self.n_layers, dropout = 0.2, batch_first = True) self.fc1 = nn.Linear(self.hidden_size, 1) self.sigmoid = nn.Sigmoid() def forward(self, x, hidden): batch_size = x.size(0) sequence_len = x.size(1) embeddings = self.embedding(x) lstm_out, hidden = self.lstm1(embeddings, hidden) output = lstm_out.contiguous().view(-1, self.hidden_size) output = self.sigmoid(self.fc1(output)) output = output.reshape(batch_size, sequence_len, -1) output = output[:, -1] return hidden, output def init_hidden(self, batch_size): weight = next(self.parameters()).data if (train_on_gpu): hidden = (weight.new(self.n_layers, batch_size, self.hidden_size).zero_().cuda(), weight.new(self.n_layers, batch_size, self.hidden_size).zero_().cuda()) else: hidden = (weight.new(self.n_layers, batch_size, self.hidden_size).zero_(), weight.new(self.n_layers, batch_size, self.hidden_size).zero_()) return hidden
I really appreciate if someone can help me fix this error.