@MatthewV
You can use functional::_narrow_with_range. The only potential issue is that this is an internal function, might change without public notification.
The reason you can not use torch::narrow directly is because there are 2 versions of torch::narrow,
Tensor narrow(const Tensor & self, int64_t dim, int64_t start, int64_t length);
Tensor narrow(const Tensor & self, int64_t dim, const Tensor & start, int64_t length);
We can not deduce the function type with parameter bindings at the moment, if you want to use torch::narrow in this case, you can wrap it with another name, for eg.
torch::Tensor aaa(const torch::Tensor& t, int a, int b, int c){ return torch::narrow(t, a, b, c);}
Then you can do Functional(aaa, 0, 1, 1);