import torch
import torch.nn as nn
def is_leaf(module: nn.Module):
    return len(list(module.modules())) == 1
model = nn.Sequential(
    nn.Sequential(nn.Linear(10, 10), nn.Linear(10, 10)), nn.Linear(10, 10)
)
for module in model.modules():
    print(module, is_leaf(module))
Sequential(
  (0): Sequential(
    (0): Linear(in_features=10, out_features=10, bias=True)
    (1): Linear(in_features=10, out_features=10, bias=True)
  )
  (1): Linear(in_features=10, out_features=10, bias=True)
) False
Sequential(
  (0): Linear(in_features=10, out_features=10, bias=True)
  (1): Linear(in_features=10, out_features=10, bias=True)
) False
Linear(in_features=10, out_features=10, bias=True) True
Linear(in_features=10, out_features=10, bias=True) True
Linear(in_features=10, out_features=10, bias=True) True
[*[*nn.Linear(10, 10).modules()][0].modules()]
[Linear(in_features=10, out_features=10, bias=True)]