比较与torch.bernoulli的差异

查看源文件

以下映射关系均可参考本文。

PyTorch APIs

MindSpore APIs

torch.bernoulli

mindspore.ops.bernoulli

torch.Tensor.bernoulli

mindspore.Tensor.bernoulli

torch.bernoulli

torch.bernoulli(input, *, generator=None, out=None)

更多内容详见torch.bernoulli

mindspore.ops.bernoulli

mindspore.ops.bernoulli(input, p=0.5, seed=None)

更多内容详见mindspore.ops.bernoulli

差异对比

MindSpore此API功能与PyTorch一致。

PyTorch: 参数 input 里保存了伯努利分布的概率值,返回值的shape和 input 一致。

MindSpore: 参数 p 里保存了伯努利分布的概率值,默认值为0.5。 p 的shape需要和 input 的shape一致,返回值的shape和 input 的shape一致。

分类

子类

PyTorch

MindSpore

差异

参数

参数 1

-

input

Mindspore下返回值的shape和数据类型和 input 的shape一致

参数 2

input

p

保存伯努利分布的概率值。PyTorch下返回值的shape和 input 一致。MindSpore下 p 为可选参数,默认值是0.5

参数 3

generator

seed

MindSpore使用随机数种子生成随机数

参数 4

out

-

不涉及

代码示例

# PyTorch
import torch
import numpy as np

p0 = np.array([0.0, 1.0, 1.0])
input_torch = torch.tensor(p0, dtype=torch.float32)
output = torch.bernoulli(input_torch)
print(output.shape)
# torch.Size([3])

# MindSpore
import mindspore as ms
import numpy as np

input0 = np.array([1, 2, 3])
p0 = np.array([0.0, 1.0, 1.0])

input = ms.Tensor(input0, ms.float32)
p = ms.Tensor(p0, ms.float32)
output = ms.ops.bernoulli(input, p)
print(output.shape)
# (3,)