When compiling the code below, there are a lot of deprecated warnings.

```
AT_DISPATCH_FLOATING_TYPES(x.type(), "comp_cuda",
([&] {
comp_cuda_kernel<scalar_t><<<grid_size, threads>>>(
x.data<scalar_t>(), h.data<scalar_t>(), out.data<scalar_t>(),
B, F, C, H, W);
}));
```

As far I noticed, the warnings basically are:

warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]

And

warning: ‘T* at::Tensor::data() const [with T = double]’ is deprecated: Tensor.data() is deprecated. Please use Tensor.data_ptr() instead. [-Wdeprecated-declarations]

The documentation, here here, does not provide an alternative to `x.type()`

. However it does suggests a different way to refer to `x.data<scalar_t>()`

as in

```
gates.packed_accessor<scalar_t,3,torch::RestrictPtrTraits,size_t>(),
```

What specifically are these arguments?

- 3
- torch::RestrictPtrTraits

Would the first and last argument always be `scalar_t`

and `size_t`

?