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++(假設 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|