【发布时间】:2021-03-29 10:40:18
【问题描述】:
我想使用 Rust 的 ndarray 库对张量(多维数组)进行切片,但问题是张量是动态成形的,并且切片存储在用户提供的变量中。
如果我预先知道维度,我希望我可以简单地执行以下操作,其中idx 是用户提供的索引,x 是一个 4 维张量:
// should give a 1D tensor as a view on the last axis at index `idx`
x.slice(s![idx[0], idx[1], idx[2], ..])
但是因为我不知道预先的维度,所以我不能手动解压缩 idx 并将其提供给切片宏 s!。
在 python 中我可能会这样做this way,其中idx 是用户提供的元组:
# if `len(idx)` was 2 but `x.ndim` was 3, we could get a 1d tensor, of length `x.shape[-1]`
x[idx]
在 Rust 中执行此操作的正确方法是什么? ndarray for numpy users 只显示了如何使用给s! 的标量值来实现
【问题讨论】:
标签: multidimensional-array rust tensor