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, 可選) – 返回張量的所需佈局。預設:torch.strided。device (
torch.device, 可選) – 返回張量的所需裝置。預設:如果為None,則使用當前裝置作為預設張量型別(參見torch.set_default_device())。對於 CPU 張量型別,device將是 CPU;對於 CUDA 張量型別,device將是當前的 CUDA 裝置。requires_grad (bool, optional) – 如果 autograd 應記錄在返回的張量上的操作。預設值:
False。pin_memory (bool, optional) – 如果設定為 True,則返回的張量將被分配到固定記憶體中。僅適用於 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])