Hello there, i am using CrossEntropyLoss for training on sequence data. On my sequence there are sparse single events of which i have labels and their position as indices for the output sequence. I would like the neighbouring samples of a single event to be labeld in the same manner as the event it self but with reduced weighting. This is what i have in mind in pseudo code:
weight = 0.5
for inputs, labels, label_indices in dataloader:
    outputs = model(inputs)
    normal_loss = criterion(outputs[label_indices], labels)
    left_loss = criterion(outputs[label_indices - 1], labels)
    right_loss = criterion(outputs[label_indices + 1], labels)
    loss = normal_loss + left_loss * weight + right_loss * weight
    
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

I this approach suitable?