335 Star 1.5K Fork 863

MindSpore / docs

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
mindspore.numpy.empty_like.md 3.45 KB
一键复制 编辑 原始数据 按行查看 历史
luojianing 提交于 2023-07-21 15:16 . replace target=blank

Function Differences with torch.empty_like

View Source On Gitee

torch.empty_like

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

mindspore.numpy.empty_like(prototype, dtype=None, shape=None) -> Tensor

For more information, see mindspore.numpy.empty_like.

Differences

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

Code Example 1

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)

Code Example 2

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)
1
https://gitee.com/mindspore/docs.git
git@gitee.com:mindspore/docs.git
mindspore
docs
docs
r2.0

搜索帮助

53164aa7 5694891 3bd8fe86 5694891