code: def as_strided(x, shape, strides, storage_offset=None):
      """Create a new view of array with the given shape, strides, and offset.
  
      Args:
          x (tuple of :class:`~chainer.Variable` or :class:`numpy.ndarray` or \
          :class:`cupy.ndarray`):
              The array pointing a memory buffer. Its view is totally ignored.
          shape (tuple of int):
              The shape of output.
          strides (tuple of int):
              The strides of output, given in the unit of steps.
          storage_offset (int):
              The offset between the head of allocated memory and the pointer of
              first element, given in the unit of steps.
  
      Returns:
          ~chainer.Variable: The strided variable.
  
      .. warning::
          Users should be aware that this function potentially causes unintended
          side effects. See `numpy.lib.stride_tricks.as_strided`_ for the detail.
  
      .. note::
          The backward algorithm is borrowed from `torch.Tensor.as_strided`.
          Therefore, the returned gradient of ``backward`` is *layout-agnostic*
          when ``x`` contains memory overlap. See notes in pytorch's source
          code (as_strided Backward and layout-aware/agnostic autograd) too.
  
      .. note::
          In this function ``strides`` and ``storage_offset`` are given in the
          unit of steps instead of bytes. This specification differs from
          :func:`numpy.lib.stride_tricks.as_strided`.
  
      .. admonition:: Example
  
          >>> from chainer import functions as F, Variable
          >>> x = Variable(np.arange(4, dtype=np.float32))
          >>> x
          variable([0., 1., 2., 3.])
          >>> y = F.as_strided(x, (3, 2), (1, 1), 0)
          >>> y
          variable([[0., 1.],
                    [1., 2.],
                    [2., 3.]])
          >>> y.grad = np.ones((3, 2), dtype=np.float32)
          >>> y.backward()
          >>> x.grad
          array([1., 2., 2., 1.], dtype=float32)
  
      .. _numpy.lib.stride_tricks.as_strided:
          https://docs.scipy.org/doc/numpy/reference/generated/\
          numpy.lib.stride_tricks.as_strided.html
  
      """
      return AsStrided(shape, strides, storage_offset).apply((x,))[0]
  
imports: import numpy
  import six
  from chainer import backend
  from chainer.backends import cuda
  from chainer import function_node
  from chainer.utils import type_check
label_desc: Use image node_id 9 for calling a global function with example usage: as_strided(x, shape, strides, storage_offset) and returns: AsStrided