softmaxRows static method
Implementation
static Tensor2D softmaxRows(Tensor2D x) {
final out = Tensor2D.zeros(x.rows, x.cols);
final od = out.data;
final xd = x.data;
final cols = x.cols;
for (var i = 0; i < x.rows; i++) {
final base = i * cols;
var maxv = -double.infinity;
for (var j = 0; j < cols; j++) {
final v = xd[base + j];
if (v > maxv) maxv = v;
}
var sum = 0.0;
for (var j = 0; j < cols; j++) {
final e = math.exp(xd[base + j] - maxv);
od[base + j] = e;
sum += e;
}
final inv = 1.0 / sum;
for (var j = 0; j < cols; j++) {
od[base + j] *= inv;
}
}
return out;
}