mindspore.ops.Dense
- class mindspore.ops.Dense[源代码]
全连接融合算子。
适用于输入的密集连接算子。算子的实现如下:
\[output = x @ w ^ T + b,\]其中 \(x\) 是输入Tensor, \(w\) 是一个权重矩阵,其数据类型与 \(x\) 相同, \(b\) 是一个偏置向量,其数据类型与 \(x\) 相同(仅当 b 不为
None
时)。- 输入:
x (Tensor) - 输入Tensor。shape必须满足: \(len(x.shape)>0\) 。
w (Tensor) - 权重Tensor。shape必须满足: 若 \(len(x.shape)>1\) ,则 \(len(w.shape)=2\) 。若 \(len(x.shape)=1\) ,则 \(len(w.shape)=1\) 。 \(w.shape[-1]=x.shape[-1]\) 。
b (Union[Tensor, None]) - 偏置Tensor。当 b 不为
None
时,shape必须满足: 若 \(len(x.shape)>1\) ,则 \(len(b.shape)=0\) 或 \(len(b.shape)=1\) 。若 \(len(b.shape)=1\) , 则 \(b.shape[0]=w.shape[0]\) 。若 \(len(x.shape)=1\) ,则 \(len(b.shape)=0\) 。
- 输出:
若 \(len(x.shape)>1\) ,则输出shape为 \((*x.shape[:-1], w.shape[0])\) 的Tensor。若 \(len(x.shape)=1\) ,则输出shape为 \(()\) 的Tensor。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import numpy as np >>> from mindspore import Tensor, ops >>> x = Tensor(np.random.random((4, 5, 6, 7)).astype(np.float32)) >>> weight = Tensor(np.random.random((6, 7)).astype(np.float32)) >>> bias = Tensor(np.random.random((6,)).astype(np.float32)) >>> dense = ops.Dense() >>> output = dense(x, weight, bias) >>> print(output.shape) (4, 5, 6, 6)