比较与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和数据类型和 |
参数 2 |
input |
p |
保存伯努利分布的概率值。PyTorch下返回值的shape和 |
|
参数 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,)