This page maps common types and operations across the PyTorch Python, libtorch C++, and FTorch Fortran APIs. It is a quick reference, not a complete API listing: the interfaces are not always one-to-one, and FTorch exposes the PyTorch features needed for calling TorchScript models from Fortran.
| Concept | PyTorch (Python) | libtorch (C++) | FTorch (Fortran) |
|---|---|---|---|
| Tensor | torch.Tensor |
torch::Tensor |
torch_tensor |
| TorchScript model | torch.jit.ScriptModule |
torch::jit::Module |
torch_model |
| Optimizer | torch.optim.Optimizer |
torch::optim::Optimizer |
torch_optim |
| Operation | PyTorch (Python) | libtorch (C++) | FTorch (Fortran) |
|---|---|---|---|
| Create a tensor of zeros | torch.zeros |
torch::zeros |
torch_tensor_zeros |
| Create a tensor of ones | torch.ones |
torch::ones |
torch_tensor_ones |
| Get shape | Tensor.size |
Tensor::sizes |
torch_tensor_get_shape |
| Get strides | Tensor.stride |
Tensor::strides |
torch_tensor_get_stride |
| Get data type | Tensor.dtype |
Tensor::scalar_type |
torch_tensor_get_dtype |
| Get device | Tensor.device |
Tensor::device |
torch_tensor_get_device_type and torch_tensor_get_device_index |
| Backpropagate gradients | Tensor.backward |
torch::autograd::backward |
torch_tensor_backward |
| Operation | PyTorch (Python) | libtorch (C++) | FTorch (Fortran) |
|---|---|---|---|
| Load a TorchScript model | torch.jit.load |
torch::jit::load |
torch_model_load |
| Run a forward pass | Module.forward |
torch::jit::Module::forward |
torch_model_forward |
| Operation | PyTorch (Python) | libtorch (C++) | FTorch (Fortran) |
|---|---|---|---|
| Create SGD optimizer | torch.optim.SGD |
torch::optim::SGD |
torch_optim_SGD |
| Create Adam optimizer | torch.optim.Adam |
torch::optim::Adam |
torch_optim_Adam |
| Create AdamW optimizer | torch.optim.AdamW |
torch::optim::AdamW |
torch_optim_AdamW |
| Clear gradients | Optimizer.zero_grad |
Optimizer::zero_grad |
torch_optim_zero_grad (optimizer%zero_grad()) |
| Update parameters | Optimizer.step |
Optimizer::step |
torch_optim_step (optimizer%step()) |
| Operation | PyTorch (Python) | libtorch (C++) | FTorch (Fortran) |
|---|---|---|---|
| Mean-squared-error loss | torch.nn.MSELoss |
torch::nn::MSELoss |
torch_loss_mse |
| Cross-entropy loss | torch.nn.CrossEntropyLoss |
torch::nn::CrossEntropyLoss |
torch_loss_cross_entropy |
The model entries refer to TorchScript. Although TorchScript is deprecated in current PyTorch documentation, FTorch's model API currently uses TorchScript models.
For details and usage examples, see the Tensor API, Optimizers API, and online training pages.