import paddleeager (dygraph) mode on by default
paddle.to_tensorbuild tensors; .numpy() to go back
nn.Layerbase class (Paddle's nn.Module)
Conv2D / BatchNorm2Dcapital D — porting gotcha
F.cross_entropyCrossEntropyLoss takes raw logits
optimizer(parameters=,learning_rate=) — not params/lr
loopbackward() → step() → clear_grad()
clear_grad()Paddle's zero_grad — don't forget it
save/set_state_dict.pdparams weights, .pdopt optimizer
paddle.Modelprepare / fit / evaluate (Keras-style)
@jit.to_staticeager → static graph (CINN) for deploy
PaddleOCRthe ecosystem's flagship toolkit