The difficulty in helping you here is that you are not giving a fully working code sample so I am not sure what you exactly wish to do.
I would also strongly suggest that you understand the way the optimizer are implemented in PyTorch.
In your case, if the input is not changing (not using a dalaloader for example as you would load new data at each iteration) ; you’d need to add the inputs to the optimizer when you are defining it:
model = MyModelClass() # initialize model
inputs = MyData() # load data
inputs.requires_grad_(True)

parameters = [
    {'params': model.parameters()},
    {'params': [inputs], 'lr': inputs_learning_rate}
]
optimizer = SGD(parameters, lr=learning_rate)

In this case, the learning rate for the parameters of the model pour be learning_rate while the learning rate for the inputs would be inputs_learning_rate.
The reason you are not seeing the inputs among the parameters when calling list(self.parameters()) is probably because you are in the model class which has parameters as attributes but your data is not an attribute of the class. If you want a list of the parameters that are being optimized by the optimizer, you need to call optimizer.param_groups.