As someone else mentioned, the metric for plateau LR scheduler should be from validation, not train, regardless of whether it is an accuracy, loss, or other metric. Defeats the point otherwise as train loss can easily continue to fall while validation loss starts increasing once you overfit.
Overall, matching training results across different frameworks isn’t always straightforward. What looks like the same network + optimizer, etc can be different enough to have an impact. Differences in image processing (even interpolation), normalization, optimizer params or implementation (momentums, epsilons, etc), layer params or impl (epsilons, momentums), can all have an impact. And also subtle mistakes like using the wrong combo of output softmax/sigmoid vs loss fn as one framework might name something differently or have different canonical examples than another.