Top: 2 lines / syttrea
Par: 2 lines
LM に \(2\) 次元行列 \(A\) (size: \(256\times16\)) が与えられます。LM 上の出力 \(2\) 次元行列 \(C\) に対して \(A[i][j]\) が \(0\) 以上のときは \(C[i][j] = A[i][j]\)、負のときは \(C[i][j] = -0\) としてください。
ニューラルネットワークの活性化関数としておなじみ、 ReLU (Rectified Linear Unit) です。
MN-Core には relu 命令があるので、float32 なので frelu $X $Y $OUT のように書きます。
本来、ReLU 関数は \(a = \operatorname{ReLU}(x)\) のような 1 引数関数ですが、MN-Core 2 の relu 命令は 2 引数関数 \(a = \operatorname{ReLU}(x, y)\) で、\(x\) が \(0\) 以上のときに \(y\) を、\(x\) が負のときに \(-0\) を返します。
$lm[0:16], (256,16)/((8_L2B:1, 4:2, 8_L1B:1), (2:1, 4_PE:1, 2_W:1); B@[MAB])
$ln[0:16], (256,16)/((8_L2B:1, 4:2, 8_L1B:1), (2:1, 4_PE:1, 2_W:1))