Tensor 索引 API#
PyTorch C++ API 中的张量索引与 Python API 非常相似。所有索引类型,如 None / ... / 整数 / 布尔值 / 切片 / 张量,在 C++ API 中都可用,这使得从 Python 索引代码到 C++ 的转换非常简单。主要区别在于,C++ API 中不使用类似于 Python API 语法的 []-运算符,而是使用索引方法:
另外需要注意的是,None / Ellipsis / Slice 等索引类型位于 torch::indexing 命名空间中,建议在任何索引代码之前添加 using namespace torch::indexing,以便方便地使用这些索引类型。
以下是将 Python 索引代码转换为 C++ 的示例:
Getter#
Python |
C++(假设 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Setter#
Python |
C++(假设 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Python/C++ 索引类型之间的转换#
Python 和 C++ 索引类型之间的一一对应转换如下:
Python |
C++(假设 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|