How can I train in C++ using a torch::jit::script::Modulel

Hi. I would like to use the python model for fine tuning in C++(Libtorch)
The model is for example.

------------------- PYTHON

model = torchvision.models.resnet50(pretrained=True)
for param in model.parameters():
    param.requires_grad = False

model.fc = torch.nn.Linear(model.fc.in_features, 2)

traced_script_module = torch.jit.trace(model, img_batch)
traced_script_module.save(save_path)

Load this model in C++
--------------------- C++

torch::jit::script::Module module;
module = torch::jit::load("./model/model_resnet50_classification2_TL.pt");
module.to(device(torch::kCPU));

/* ****************************************
HOW DO I SET IT IN OPTIMIZER?

[NG1] torch::optim::Adam optimizer(module.parameters(), torch::optim::AdamOptions(1e-3));
[NG2] torch::jit::parameter_list params = module.parameters();
std::transform(params.begin(), params.end(), std::back_inserter(paramsVector),
(const torch::jit::IValue& ivalue) { return ivalue.toTensor(); });
torch::optim::Adam optimizer(paramsVector, torch::optim::AdamOptions(1e-3));
[NG3] std::vectortorch::Tensor paramsVector;
int i = 0;
for (const auto& params : module.parameters()) {
std::cout << " " << params.requires_grad() << std::endl;
paramsVector.push_back(params[i].variable_data());
i++;
}
torch::optim::Adam optimizer(paramsVector, torch::optim::AdamOptions(1e-3));
**************************************** */

//  ..... MAKE INPUT TENSOR (IMAGE 3*224*224)   & Labels  ......
.........  EPOCH & BATCH LOOP
module.train();
optimizer.zero_grad();
output = module.forward({ input }).toTensor();
loss = torch::nll_loss(torch::log_softmax(output, 1), label);
loss.backward();
optimizer.step();