Similar error even not using the nn.Logsoftmax activation on out beacuse i tried another nn.Linear layer and also with the direct output.
the piece of code worked for me is;
class MyRNN(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        super(MyRNN, self).__init__()

        self.hidden_size = hidden_size

        self.i2h = nn.Linear(input_size + hidden_size, hidden_size)
        self.i2o = nn.Linear(input_size + hidden_size, output_size)
        #self.outp = nn.Linear(output_size, 7)
        self.softmax = nn.LogSoftmax(dim=1)

    def forward(self, input, hidden):
        input = input.view(input.size(0), -1)
        hidden = hidden.view(hidden.size(0), -1)
        combined = torch.cat((input, hidden), dim=1)
        hidden = self.i2h(combined)
        output = self.i2o(combined)
        #output = self.outp(output)

        output = self.softmax(output)
        return output, hidden

    def initHidden(self, batch_size):
        return torch.zeros(batch_size, self.hidden_size).to(device)

...
...
    def forward(self, x):
       ....
       ....
        hidden = self.myRNN.initHidden(x.size(0))
        x = self.myRNN(x, hidden)
        return x


AttributeError: 'tuple' object has no attribute 'log_softmax'

this error was solved by changing the lines in training code but i wont able to figure out the exact location from where i got the tuple
for epoch in range(1, n_epochs + 1):
    ....
    model.train()
    ....
    output = Net(data)
    loss = criterion(output[0], target)
    ....
    ....
    out, pred = torch.max(F.softmax(output[0], 1),1)
    ....

taking the specific output[0] for the criterion solves the error may be beacuse the MyRNN block is returning 2 output values
Thanks