anchor.diff:          let i2max = defaultArg i2max (t.Shape.[2] - 1)
           let bounds = array2D [[i0min; i0max]; [i1min; i1max]; [i2min; i2max]]
           t.GetSlice(bounds)
  -
       member t.GetSlice(i0:int, i1:int, i2:int) =
           let i0min = i0
           let i0max = i0
  
positive.code:         let i1max = defaultArg i1max (t.Shape.[1] - 1)
          let bounds = array2D [[i0min; i0max]; [i1min; i1max]]
          t.GetSlice(bounds)
  
      member t.GetSlice(i0min:int option, i0max:int option, i1:int) =
          let i0min = defaultArg i0min 0
          let i0max = defaultArg i0max (t.Shape.[0] - 1)
  
negative.code:         match dtype, device, backend with
          | Float32, CPU, CPUBase -> Tensor(RawTensorFloat32CPUBase.Ones(shape|>Seq.toArray))
          | _ -> failwithf "Unsupported Tensor creation with dtype: %A, device: %A, backend: %A" dtype device backend
      static member Random(shape:seq<int>, ?dtype:DType, ?device:Device, ?backend:Backend) =
          let dtype = defaultArg dtype Float32
          let device = defaultArg device CPU
  