torch.empty_strided¶
- torch.empty_strided(size, stride, *, dtype=None, layout=None, device=None, requires_grad=False, pin_memory=False) Tensor ¶
建立一個具有指定
size
和stride
的張量,並以未定義的資料填充。警告
如果建構的張量是「重疊的」(多個索引指向記憶體中的同一個元素),則其行為是未定義的。
注意
如果
torch.use_deterministic_algorithms()
和torch.utils.deterministic.fill_uninitialized_memory
皆設定為True
,則會初始化輸出張量,以防止因使用該資料作為運算的輸入而產生的任何可能的非決定性行為。浮點數和複數張量會以 NaN 填充,而整數張量會以最大值填充。- 參數
- 關鍵字參數
dtype (
torch.dtype
, optional) – 欲返回張量的資料型態。預設值:如果None
,則使用全域預設值(請參閱torch.set_default_dtype()
)。layout (
torch.layout
, optional) – 欲返回張量的佈局。預設值:torch.strided
。device (
torch.device
, optional) – 欲返回張量的裝置。預設值:如果None
,則使用預設張量類型的當前裝置(請參閱torch.set_default_device()
)。對於 CPU 張量類型,device
將為 CPU,對於 CUDA 張量類型,則為當前的 CUDA 裝置。requires_grad (bool, optional) – 如果 autograd 應該記錄在返回的張量上的操作。預設值:
False
。pin_memory (bool, optional) – 如果設定,返回的張量將被分配在鎖頁記憶體中。僅適用於 CPU 張量。預設值:
False
。
範例
>>> a = torch.empty_strided((2, 3), (1, 2)) >>> a tensor([[8.9683e-44, 4.4842e-44, 5.1239e+07], [0.0000e+00, 0.0000e+00, 3.0705e-41]]) >>> a.stride() (1, 2) >>> a.size() torch.Size([2, 3])