Source code for onnx_diagnostic.reference.torch_ops.generator_ops
from typing import Optional
import onnx
import torch
from . import OpRunKernel, OpRunTensor
[docs]
class Range_11(OpRunKernel):
    """Range"""
[docs]
    @classmethod
    def device_dependent(cls) -> bool:
        """
        Returns True if the kernel needs a device to be efficiently initialized.
        """
        return True 
    def __init__(
        self,
        node: onnx.NodeProto,
        version: Optional[int] = None,
        device: Optional[torch.device] = None,
        verbose: int = 0,
    ):
        super().__init__(node, version, verbose=verbose)
        self.device = device
[docs]
    def run(self, starts: OpRunTensor, limit: OpRunTensor, delta: OpRunTensor) -> OpRunTensor:
        return OpRunTensor(
            torch.arange(
                starts.tensor,
                limit.tensor,
                delta.tensor,
                dtype=starts.dtype,
                device=self.device,
            )
        )