torch.empty_like(
input,
*,
dtype=None,
layout=None,
device=None,
requires_grad=False,
memory_format=torch.preserve_format
) -> Tensor
For more information, see torch.empty_like.
mindspore.numpy.empty_like(prototype, dtype=None, shape=None) -> Tensor
For more information, see mindspore.numpy.empty_like.
PyTorch: Return an uninitialized tensor of the same size and type as the input, and input only supports Tensor type inputs.
MindSpore: MindSpore API basically implements the same function as PyTorch. However, there are differences in the supported input types and parameter names. The input name of MindSpore operator is prototype, and supports three types of input: Tensor, list, and tuple. In addition, MindSpore adds a new parameter shape than PyTorch to achieve rewriting the shape of the result.
Categories | Subcategories | PyTorch | MindSpore | Difference |
---|---|---|---|---|
Input | Single input | input | prototype | Same function. MindSpore supports more input types |
Parameters | Parameter 1 | dtype | dtype | - |
Parameter 2 | - | shape | Implement overwritten shape. PyTorch does not have this parameter | |
Parameter 3 | layout | - | Not involved | |
Parameter 4 | device | - | Not involved | |
Parameter 5 | requires_grad | - | MindSpore does not have this parameter and supports reverse derivation by default | |
Parameter 6 | memory_format | - | Not involved |
For the parameter shape, PyTorch empty_like operator does not have this parameter, and MindSpore shape parameter defaults to None, by which the result shape can be rewritten.
# PyTorch
import torch
input_torch = torch.ones((2, 3))
torch_output = torch.empty_like(input_torch)
print(list(torch_output.shape))
# [2, 3]
# MindSpore
import mindspore
input_ms = mindspore.numpy.ones((4,1,2))
ms_output = mindspore.numpy.empty_like(input_ms, shape=[2, 3])
print(ms_output.shape)
# (2, 3)
PyTorch empty_like operator supports the input type Tensor, but MindSpore supports three input types Tensor, list, and tuple. When the input is of type array, the arrays must have the same size in dimension. If the input type is not Tensor, the default data type is float32 (if dtype is not provided).
# PyTorch
import torch
input_tensor_torch = torch.ones((2, 3))
torch_output = torch.empty_like(input_tensor_torch)
print(list(torch_output.shape))
# [2, 3]
# MindSpore
import mindspore
input_tensor_ms = mindspore.numpy.ones((2, 3))
ms_tensor_output = mindspore.numpy.empty_like(input_tensor_ms)
print(ms_tensor_output.shape)
# (2, 3)
input_list_ms = [[1, 2, 3],[4, 5, 6]]
ms_list_output = mindspore.numpy.empty_like(input_list_ms)
print(ms_list_output.shape)
# (2, 3)
input_tuple_ms = ((1, 2, 3),(4, 5, 6))
ms_tuple_output = mindspore.numpy.empty_like(input_tuple_ms)
print(ms_tuple_output.shape)
# (2, 3)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。