比较与torch.nn.init.uniform_的差异
torch.nn.init.uniform_
torch.nn.init.uniform_(
tensor,
a=0.0,
b=1.0
) -> Tensor
更多内容详见torch.nn.init.uniform_。
mindspore.ops.uniform
mindspore.ops.uniform(shape, minval, maxval, seed=None, dtype=mstype.float32) -> Tensor
更多内容详见mindspore.ops.uniform。
差异对比
PyTorch:通过入参a
和b
分别指定均匀分布的上下界,即U(-a, b)。
MindSpore:通过入参minval
和maxval
分别指定均匀分布的上下界,即U(minval, maxval),通过seed指定随机种子。
分类 |
子类 |
PyTorch |
MindSpore |
差异 |
---|---|---|---|---|
参数 |
参数1 |
tensor |
shape |
Pytorch是一个n维Tensor,MindSpore则为shape或包裹shape的Tensor |
参数2 |
a |
minval |
参数名不同,功能相似,指定生成随机值最小值 |
|
参数3 |
b |
maxval |
参数名不同,功能相似,指定生成随机值最大值 |
|
参数4 |
- |
seed |
指定随机种子 |
|
参数5 |
- |
dtype |
指定输入数据的类型,根据数据类型确定均匀分布生成数据是离散型或是连续型 |
代码示例
# PyTorch
import torch
from torch import nn
w = torch.empty(3, 2)
output = nn.init.uniform_(w, a=1, b=4)
print(tuple(output.shape))
# (3, 2)
# MindSpore
import numpy as np
import mindspore
from mindspore import ops
from mindspore import Tensor
shape = (3,2)
minval = Tensor(1, mindspore.float32)
maxval = Tensor(4, mindspore.float32)
output = ops.uniform(shape, minval, maxval, dtype=mindspore.float32)
print(output.shape)
# Out:
# (3, 2)