111332:

    print('data', data)
    output = model(data)
    print('output', output)
    print('*'*20)

    loss = criterion(output, label)
    loss.backward()
    optimizer.step()
    optimizer.zero_grad()
    model.zero_grad()



That’s because you are printing the output before updating the parameters.
Once you update the parameters, the output is computed with updated parameters.