Hi,
I registered my paramert in nn.Module sub-class by function register_parameter. The example code is followed. in my training code, I found that loss kept on changing, but acc kept unchanged.
I register all parameters in top Module and use each parameter in each forward function of sub-module. I am considering whether the gradient of each parameter will be calculated according to the definition Module or the Module where the parameter is used?
in addition, if I do only forward to test acc, the acc is good as expected. without any change, if I do training, the loss kept on small changes(such as from loss = 0.6420461028972839 to  loss = 0.6429245240923738), but acc kept exactly unchanged.
I tried to change lr, but almost no help.
My questions are:

could those registered parameters trained/optimzed?
is there any special/additional settings I should change to make those parameters trained/optimized?

self.register_parameter(
    name=param_name.replace('.', '_'),
    param=Parameter(
        torch.from_numpy(param_data), requires_grad=not is_constant
    )
)