OK. Works now:
Model:
def forward(self, x):
        x = self.features(x)
        x = x.view(-1,self.num_ftrs )
        species_length = F.relu(self.class_fc1(x))
        species_length = self.class_fc2(species_length)
        _species = species_length.clone()[:,:8,...]
        _length  = species_length.clone()[:, 8,...]
        species_length[:,:8,...] = nn.LogSoftmax()(_species)
        species_length[:, 8,...] = F.relu(_length)
        return species_length

Loss:
def species_length_loss(input, target):

    input_species = input[:,:8]
    input_length  = input[:, 8]

    target_species = target[:,0].long()
    target_length  = target[:,1]

    input_length = input_length * (target_species != 7).float()

    loss = nn.MSELoss()(input_length, target_length) * 1e-4 + F.nll_loss(input_species, target_species) 

    return loss