Hello All,
I’m new to pytorch and i’m facing a problem with NLLLoss function
this is my target wrapper tensor with one vlaue which is the index of the right class
category_tensor = torch.tensor([d.all_categories.index(category)], dtype=torch.long)
when i pass it to the lose function it get me this error ValueError: Expected target size (1, 18), got torch.Size([1])
in this line: loss = criterion(output, category_tensor)
while i used it the same and no problems in another model
my model is as follow
class Names(CudaModule):
def __init__(self, input_size, hidden_size, output_size, device_id):
super(Names, self).__init__(device_id)
self.input_size = input_size
self.hidden_size = hidden_size
self.encoder = nn.LSTM(
input_size=input_size,
hidden_size = hidden_size,
num_layers = 1
)
self.lin = nn.Linear(hidden_size,output_size)
#self.mid = nn.ReLU()
self.out = nn.LogSoftmax(dim=1)
def forward(self, inpt, h):
#print(inpt)
output, h = self.encoder(inpt.view(1,1,-1), h)
output = self.lin(output)
#output = self.mid(output)
output = self.out(output)
return output ,h
any help understand the issue is appreciated