mindspore.nn.Dense
- class mindspore.nn.Dense(in_channels, out_channels, weight_init='normal', bias_init='zeros', has_bias=True, activation=None)[源代码]
全连接层。
公式如下:
\[\text{outputs} = \text{activation}(\text{X} * \text{kernel} + \text{bias}),\]其中 \(X\) 是输入Tensor, \(\text{activation}\) 是激活函数, \(\text{kernel}\) 是一个权重矩阵,其数据类型与 \(X\) 相同, \(\text{bias}\) 是一个偏置向量,其数据类型与 \(X\) 相同(仅当has_bias为True时)。
参数:
in_channels (int) - Dense层输入Tensor的空间维度。
out_channels (int) - Dense层输出Tensor的空间维度。
weight_init (Union[Tensor, str, Initializer, numbers.Number]) - 权重参数的初始化方法。数据类型与 x 相同。str的值引用自函数 initializer。默认值:’normal’。
bias_init (Union[Tensor, str, Initializer, numbers.Number]) - 偏置参数的初始化方法。数据类型与 x 相同。str的值引用自函数 initializer。默认值:’zeros’。
has_bias (bool) - 是否使用偏置向量 \(\text{bias}\) 。默认值:True。
activation (Union[str, Cell, Primitive]) - 应用于全连接层输出的激活函数,例如‘ReLU’。默认值:None。
输入:
x (Tensor) - shape为 \((*,in\_channels)\) 的Tensor。 参数中的 in_channels 应等于输入中的 \(in\_channels\) 。
输出:
shape为 \((*,out\_channels)\) 的Tensor。
异常:
TypeError - in_channels 或 out_channels 不是整数。
TypeError - has_bias 不是bool值。
TypeError - activation 不是str、Cell、Primitive或者None。
ValueError - weight_init 的shape长度不等于2,weight_init 的shape[0]不等于 out_channels,或者 weight_init 的shape[1]不等于 in_channels。
ValueError - bias_init 的shape长度不等于1或 bias_init 的shape[0]不等于 out_channels。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> x = Tensor(np.array([[180, 234, 154], [244, 48, 247]]), mindspore.float32) >>> net = nn.Dense(3, 4) >>> output = net(x) >>> print(output.shape) (2, 4)