評價此頁

torch.empty_like#

torch.empty_like(input, *, dtype=None, layout=None, device=None, requires_grad=False, memory_format=torch.preserve_format) Tensor#

返回一個大小與 `input` 相同的未初始化張量。`torch.empty_like(input)` 等價於 `torch.empty(input.size(), dtype=input.dtype, layout=input.layout, device=input.device)`。

注意

如果 torch.use_deterministic_algorithms()torch.utils.deterministic.fill_uninitialized_memory 都設定為 True,則輸出張量會被初始化,以防止使用資料作為操作輸入的任何可能的非確定性行為。浮點數和複數張量將填充 NaN,整數張量將填充最大值。

當使用 `torch.preserve_format` 時:如果輸入張量是稠密的(即非重疊跨步),則會保留其記憶體格式(包括跨步)。否則(例如,非稠密檢視,如步進切片),輸出將被轉換為稠密格式。

引數

input (Tensor) – input 的大小將決定輸出張量的大小。

關鍵字引數
  • dtype (torch.dtype, optional) – 返回的 Tensor 的所需資料型別。預設值:如果 None,則預設為 input 的 dtype。

  • layout (torch.layout, optional) – 返回的張量的所需佈局。預設值:如果 None,則預設為 input 的佈局。

  • device (torch.device, optional) – 返回的張量的所需裝置。預設值:如果 None,則預設為 input 的裝置。

  • requires_grad (bool, optional) – 如果 autograd 應記錄在返回的張量上的操作。預設值:False

  • memory_format (torch.memory_format, optional) – 返回的 Tensor 的所需記憶體格式。預設值:torch.preserve_format

示例

>>> a=torch.empty((2,3), dtype=torch.int32, device = 'cuda')
>>> torch.empty_like(a)
tensor([[0, 0, 0],
        [0, 0, 0]], device='cuda:0', dtype=torch.int32)