張量索引 API#
在 PyTorch C++ API 中對張量進行索引與 Python API 非常相似。所有索引型別,如 None / ... / integer / boolean / slice / tensor,在 C++ API 中都可用,這使得將 Python 索引程式碼轉換為 C++ 變得非常簡單。主要區別在於,C++ API 沒有使用類似於 Python API 語法的 [] 運算子,而是使用以下索引方法:
同樣重要的是要注意,None / Ellipsis / Slice 等索引型別位於 torch::indexing 名稱空間中,建議在使用這些索引型別之前加上 using namespace torch::indexing,以便於方便使用。
以下是一些將 Python 索引程式碼轉換為 C++ 的示例:
獲取器#
Python |
C++ (假設使用了 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
設定器#
Python |
C++ (假設使用了 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Python/C++ 索引型別之間的轉換#
Python 和 C++ 索引型別之間的一一對應轉換如下:
Python |
C++ (假設使用了 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|