[cherry-pick] Fix numpy2.1 bug in py3.10 #67866
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Category
Execute Infrastructure
PR Types
Others
Description
Fix the bug in PaddlePaddle under Python 3.10 and NumPy 2.1.
For any
__array__
method on a non-NumPy array-like object, dtype=None and copy=None keywords must be added to the signature - this will work with older NumPy versions as well (although older numpy versions will never pass in copy keyword). If the keywords are added to the__array__
signature, then for:copy=True and any dtype value always return a new copy,
copy=None create a copy if required (for example by dtype),
copy=False a copy must never be made. If a copy is needed to return a numpy array or satisfy dtype, then raise an exception (ValueError).
Restricting numpy to version 1.21 or above is to fix the bug of not finding the ‘NDArray’ attribute when using theIt's no need to cherry-pick to 2.6numpy.typing
module.To do:
Modify the logic in TensorToPyArray(self) according to the dtype and copy parameters.
pcard-67164