anchor.diff:              | [| i0; i1; i2 |] -> tt.[int64 i0, int64 i1, int64 i2]
               | [| i0; i1; i2; i3 |] -> tt.[int64 i0, int64 i1, int64 i2, int64 i3]
               | _ -> tt.View(toTorchShape [|shapeLength shape|]).[int64 (indexToFlatIndex shape indexes)]
  +
  +        // Torch Tensors must be CPU before DataItem can be accessed
  +        let item = torchMoveTo item Device.CPU
  +
           let obj = 
               match dtype with 
               | Dtype.Bool -> box (item.DataItem<bool>())
  
positive.code:     let fromTorchShape (shape: int64[]) = shape |> Array.map int
  
      let inline combineHashes (h1 : int) (h2 : int) = ((h1 <<< 5) + h1) ^^^ h2
  
      type RawTensor with
          member x.TorchTensor = (x :?> TorchRawTensor).TorchTensor
  
negative.code:             idxs.[i] <- indexes
          for i = 0 to t.Dim - 1 do 
              let idx = idxs.[i]
  
              // Torch Tensors must be CPU before DataItem can be accessed
              let idx = torchMoveTo idx Device.CPU
  
              res.[i] <- 
                  match i with 
                  | 0 -> idx.DataItem<int64>()
  