You could use forward hooks as seen in this code snippet:
import torch
import torch.nn as nn
import torch.nn.functional as F

class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.fc1 = nn.Linear(1, 1)
        self.fc2 = nn.Linear(1, 1)
        
    def forward(self, x):
        x = self.fc1(x)
        x = F.relu(x)
        x = self.fc2(x)
        return x

def hook(m, input, output):
    output = output * 100.
    return output

model = MyModel()

x = torch.randn(1, 1)
out = model(x)
print(out)
out.mean().backward()
print(model.fc1.weight.grad)
model.zero_grad()

model.fc1.register_forward_hook(hook)
out = model(x)
print(out)
out.mean().backward()
print(model.fc1.weight.grad)