pytorch - 💡(How to fix) Fix DISABLED test_opcheck_opinfo_NumpyViewCopyCustomOp_cpu_float32 (__main__.TestCustomOpTestingCPU) [2 comments, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
pytorch/pytorch#180338Fetched 2026-04-16 06:35:18
View on GitHub
Comments
2
Participants
1
Timeline
18
Reactions
0
Participants
Timeline (top)
labeled ×6mentioned ×5subscribed ×5commented ×2

Error Message

Traceback (most recent call last): File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/optests/generate_tests.py", line 695, in opcheck tester(op, args, kwargs, rtol=rtol, atol=atol) ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/optests/generate_tests.py", line 61, in safe_schema_check result = op(*args, **kwargs) File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_ops.py", line 871, in call return self._op(*args, **kwargs) ~~~~~~~~^^^^^^^^^^^^^^^^^ File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_compile.py", line 54, in inner return disable_fn(*args, **kwargs) File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_dynamo/eval_frame.py", line 1281, in _fn return fn(*args, **kwargs) File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_subclasses/schema_check_mode.py", line 184, in torch_dispatch out = func(*args, **kwargs) File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_ops.py", line 871, in call return self._op(*args, **kwargs) ~~~~~~~~^^^^^^^^^^^^^^^^^ File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_library/custom_ops.py", line 375, in backend_impl result = self._backend_fns[device_type](*args, **kwargs) File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_compile.py", line 54, in inner return disable_fn(*args, **kwargs) File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_dynamo/eval_frame.py", line 1281, in _fn return fn(*args, **kwargs) File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_library/custom_ops.py", line 410, in wrapped_fn return fn(*args, **kwargs) File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/custom_op_db.py", line 238, in numpy_view_copy return torch.tensor(np.copy(to_numpy(x).reshape(shape)), device=x.device) ~~~~~~~~^^^ File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/custom_op_db.py", line 29, in to_numpy return tensor.cpu().numpy() ~~~~~~~~~~~~~~~~~~^^ RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_device_type.py", line 1175, in test_wrapper return test(*args, **kwargs) File "/__w/pytorch/pytorch/test/test_custom_ops.py", line 444, in test_opcheck_opinfo torch.library.opcheck(op.op, args, kwargs) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^ File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/library.py", line 1749, in opcheck return optests.opcheck( ~~~~~~~~~~~~~~~^ op, ^^^ ...<5 lines>... atol=atol, ^^^^^^^^^^ ) ^ File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/optests/generate_tests.py", line 699, in opcheck raise OpCheckError( ...<2 lines>... ) from ex torch.testing._internal.optests.generate_tests.OpCheckError: opcheck(op, ...): test_schema failed with Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead. (scroll up for stack trace)

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_utils.py", line 3444, in wrapper method(*args, **kwargs) ~~~~~~^^^^^^^^^^^^^^^^^ File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_device_type.py", line 439, in instantiated_test result = test(self, **param_kwargs) File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_utils.py", line 1821, in wrapper fn(*args, **kwargs) ~~^^^^^^^^^^^^^^^^^ File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_device_type.py", line 1187, in test_wrapper raise e_tracked from e Exception: opcheck(op, ...): test_schema failed with Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead. (scroll up for stack trace)

Caused by sample input at index 0: SampleInput(input=Tensor[size=(2, 3, 4), device="cpu", dtype=torch.float32], args=((2,12)), kwargs={}, broadcasts_input=False, name='')

To execute this test, run the following from the base repo dir: PYTORCH_OPINFO_SAMPLE_INPUT_INDEX=0 python test/test_custom_ops.py TestCustomOpTestingCPU.test_opcheck_opinfo_NumpyViewCopyCustomOp_cpu_float32

This message can be suppressed by setting PYTORCH_PRINT_REPRO_ON_FAILURE=0

Root Cause

This test was disabled because it is failing in CI. See recent examples and the most recent trunk workflow logs.

Fix Action

Fix / Workaround

Traceback (most recent call last):
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/optests/generate_tests.py", line 695, in opcheck
    tester(op, args, kwargs, rtol=rtol, atol=atol)
    ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/optests/generate_tests.py", line 61, in safe_schema_check
    result = op(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_ops.py", line 871, in __call__
    return self._op(*args, **kwargs)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_compile.py", line 54, in inner
    return disable_fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_dynamo/eval_frame.py", line 1281, in _fn
    return fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_subclasses/schema_check_mode.py", line 184, in __torch_dispatch__
    out = func(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_ops.py", line 871, in __call__
    return self._op(*args, **kwargs)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_library/custom_ops.py", line 375, in backend_impl
    result = self._backend_fns[device_type](*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_compile.py", line 54, in inner
    return disable_fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_dynamo/eval_frame.py", line 1281, in _fn
    return fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_library/custom_ops.py", line 410, in wrapped_fn
    return fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/custom_op_db.py", line 238, in numpy_view_copy
    return torch.tensor(np.copy(to_numpy(x).reshape(shape)), device=x.device)
                                ~~~~~~~~^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/custom_op_db.py", line 29, in to_numpy
    return tensor.cpu().numpy()
           ~~~~~~~~~~~~~~~~~~^^
RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.

Code Example

Traceback (most recent call last):
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/optests/generate_tests.py", line 695, in opcheck
    tester(op, args, kwargs, rtol=rtol, atol=atol)
    ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/optests/generate_tests.py", line 61, in safe_schema_check
    result = op(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_ops.py", line 871, in __call__
    return self._op(*args, **kwargs)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_compile.py", line 54, in inner
    return disable_fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_dynamo/eval_frame.py", line 1281, in _fn
    return fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_subclasses/schema_check_mode.py", line 184, in __torch_dispatch__
    out = func(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_ops.py", line 871, in __call__
    return self._op(*args, **kwargs)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_library/custom_ops.py", line 375, in backend_impl
    result = self._backend_fns[device_type](*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_compile.py", line 54, in inner
    return disable_fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_dynamo/eval_frame.py", line 1281, in _fn
    return fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_library/custom_ops.py", line 410, in wrapped_fn
    return fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/custom_op_db.py", line 238, in numpy_view_copy
    return torch.tensor(np.copy(to_numpy(x).reshape(shape)), device=x.device)
                                ~~~~~~~~^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/custom_op_db.py", line 29, in to_numpy
    return tensor.cpu().numpy()
           ~~~~~~~~~~~~~~~~~~^^
RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_device_type.py", line 1175, in test_wrapper
    return test(*args, **kwargs)
  File "/__w/pytorch/pytorch/test/test_custom_ops.py", line 444, in test_opcheck_opinfo
    torch.library.opcheck(op.op, args, kwargs)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/library.py", line 1749, in opcheck
    return optests.opcheck(
           ~~~~~~~~~~~~~~~^
        op,
        ^^^
    ...<5 lines>...
        atol=atol,
        ^^^^^^^^^^
    )
    ^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/optests/generate_tests.py", line 699, in opcheck
    raise OpCheckError(
    ...<2 lines>...
    ) from ex
torch.testing._internal.optests.generate_tests.OpCheckError: opcheck(op, ...): test_schema failed with Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead. (scroll up for stack trace)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_utils.py", line 3444, in wrapper
    method(*args, **kwargs)
    ~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_device_type.py", line 439, in instantiated_test
    result = test(self, **param_kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_utils.py", line 1821, in wrapper
    fn(*args, **kwargs)
    ~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_device_type.py", line 1187, in test_wrapper
    raise e_tracked from e
Exception: opcheck(op, ...): test_schema failed with Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead. (scroll up for stack trace)

Caused by sample input at index 0: SampleInput(input=Tensor[size=(2, 3, 4), device="cpu", dtype=torch.float32], args=((2,12)), kwargs={}, broadcasts_input=False, name='')

To execute this test, run the following from the base repo dir:
    PYTORCH_OPINFO_SAMPLE_INPUT_INDEX=0 python test/test_custom_ops.py TestCustomOpTestingCPU.test_opcheck_opinfo_NumpyViewCopyCustomOp_cpu_float32

This message can be suppressed by setting PYTORCH_PRINT_REPRO_ON_FAILURE=0
RAW_BUFFERClick to expand / collapse

Platforms: asan, linux

This test was disabled because it is failing in CI. See recent examples and the most recent trunk workflow logs.

Over the past 6 hours, it has been determined flaky in 58 workflow(s) with 116 failures and 58 successes.

Debugging instructions (after clicking on the recent samples link): DO NOT ASSUME THINGS ARE OKAY IF THE CI IS GREEN. We now shield flaky tests from developers so CI will thus be green but it will be harder to parse the logs. To find relevant log snippets:

  1. Click on the workflow logs linked above
  2. Click on the Test step of the job so that it is expanded. Otherwise, the grepping will not work.
  3. Grep for test_opcheck_opinfo_NumpyViewCopyCustomOp_cpu_float32
  4. There should be several instances run (as flaky tests are rerun in CI) from which you can study the logs.
<details><summary>Sample error message</summary>
Traceback (most recent call last):
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/optests/generate_tests.py", line 695, in opcheck
    tester(op, args, kwargs, rtol=rtol, atol=atol)
    ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/optests/generate_tests.py", line 61, in safe_schema_check
    result = op(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_ops.py", line 871, in __call__
    return self._op(*args, **kwargs)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_compile.py", line 54, in inner
    return disable_fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_dynamo/eval_frame.py", line 1281, in _fn
    return fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_subclasses/schema_check_mode.py", line 184, in __torch_dispatch__
    out = func(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_ops.py", line 871, in __call__
    return self._op(*args, **kwargs)
           ~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_library/custom_ops.py", line 375, in backend_impl
    result = self._backend_fns[device_type](*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_compile.py", line 54, in inner
    return disable_fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_dynamo/eval_frame.py", line 1281, in _fn
    return fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/_library/custom_ops.py", line 410, in wrapped_fn
    return fn(*args, **kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/custom_op_db.py", line 238, in numpy_view_copy
    return torch.tensor(np.copy(to_numpy(x).reshape(shape)), device=x.device)
                                ~~~~~~~~^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/custom_op_db.py", line 29, in to_numpy
    return tensor.cpu().numpy()
           ~~~~~~~~~~~~~~~~~~^^
RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_device_type.py", line 1175, in test_wrapper
    return test(*args, **kwargs)
  File "/__w/pytorch/pytorch/test/test_custom_ops.py", line 444, in test_opcheck_opinfo
    torch.library.opcheck(op.op, args, kwargs)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/library.py", line 1749, in opcheck
    return optests.opcheck(
           ~~~~~~~~~~~~~~~^
        op,
        ^^^
    ...<5 lines>...
        atol=atol,
        ^^^^^^^^^^
    )
    ^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/optests/generate_tests.py", line 699, in opcheck
    raise OpCheckError(
    ...<2 lines>...
    ) from ex
torch.testing._internal.optests.generate_tests.OpCheckError: opcheck(op, ...): test_schema failed with Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead. (scroll up for stack trace)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_utils.py", line 3444, in wrapper
    method(*args, **kwargs)
    ~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_device_type.py", line 439, in instantiated_test
    result = test(self, **param_kwargs)
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_utils.py", line 1821, in wrapper
    fn(*args, **kwargs)
    ~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/py_3.14/lib/python3.14t/site-packages/torch/testing/_internal/common_device_type.py", line 1187, in test_wrapper
    raise e_tracked from e
Exception: opcheck(op, ...): test_schema failed with Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead. (scroll up for stack trace)

Caused by sample input at index 0: SampleInput(input=Tensor[size=(2, 3, 4), device="cpu", dtype=torch.float32], args=((2,12)), kwargs={}, broadcasts_input=False, name='')

To execute this test, run the following from the base repo dir:
    PYTORCH_OPINFO_SAMPLE_INPUT_INDEX=0 python test/test_custom_ops.py TestCustomOpTestingCPU.test_opcheck_opinfo_NumpyViewCopyCustomOp_cpu_float32

This message can be suppressed by setting PYTORCH_PRINT_REPRO_ON_FAILURE=0
</details>

Test file path: test_custom_ops.py

For all disabled tests (by GitHub issue), see https://hud.pytorch.org/disabled.

cc @chauhang @penguinwu @bdhirsh @bobrenjc93 @aorenste

extent analysis

TL;DR

The most likely fix is to use tensor.detach().numpy() instead of tensor.numpy() when calling numpy() on a Tensor that requires grad.

Guidance

  • Identify the line of code causing the error: return tensor.cpu().numpy() in to_numpy function.
  • Replace tensor.cpu().numpy() with tensor.detach().cpu().numpy() to detach the tensor before converting it to a numpy array.
  • Verify the fix by re-running the test with the modified code.
  • If the issue persists, investigate other potential causes of the error, such as incorrect tensor creation or modification.

Example

def to_numpy(tensor):
    return tensor.detach().cpu().numpy()

Notes

The error message explicitly states that tensor.detach().numpy() should be used instead of tensor.numpy() when the tensor requires grad. This suggests that the fix is to modify the to_numpy function to detach the tensor before converting it to a numpy array.

Recommendation

Apply the workaround by modifying the to_numpy function to use tensor.detach().cpu().numpy() instead of tensor.cpu().numpy(). This should fix the error and allow the test to pass.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

pytorch - 💡(How to fix) Fix DISABLED test_opcheck_opinfo_NumpyViewCopyCustomOp_cpu_float32 (__main__.TestCustomOpTestingCPU) [2 comments, 1 participants]