tinyopt
700
Tinyopt, a lightweight, header only optimization library
Toggle main menu visibility
Loading...
Searching...
No Matches
activations.h
1
// Copyright 2026 Julien Michot.
2
// SPDX-License-Identifier: Apache-2.0
3
4
#pragma once
5
6
#include <tinyopt/losses/helpers.h>
7
8
namespace
tinyopt::losses
{
9
15
DefineLoss
(
16
Sigmoid, 1.0 / (1.0 + exp(-x)),
17
l.unaryExpr([](
auto
x) -> Scalar { return x * (Scalar(1.0) - x); }).reshaped().asDiagonal());
18
20
DefineLoss
(
21
Tanh, (exp(x) - exp(-x)) / (exp(x) + exp(-x)),
22
l.unaryExpr([](
auto
x) -> Scalar { return Scalar(1.0) - x * x; }).reshaped().asDiagonal());
23
25
DefineLoss
(
26
ReLU, x > 0 ? x : Scalar(0.0),
27
x.unaryExpr([](
auto
x) { return x > 0 ? Scalar(1.0) : Scalar(0.0); }).reshaped().asDiagonal());
28
30
DefineLoss2
(LeakyReLU, x > 0 ? x : a * x,
31
x.unaryExpr([a](
auto
x) { return x > 0 ? 1 : a; }).reshaped().asDiagonal());
32
34
}
// namespace tinyopt::losses
tinyopt::losses
Definition
activations.h:8
tinyopt::losses::DefineLoss2
DefineLoss2(LeakyReLU, x > 0 ? x :a *x, x.unaryExpr([a](auto x) { return x > 0 ? 1 :a;}).reshaped().asDiagonal())
LeakyReLU = {x>0:x, x<=0:a*x}, derivative = {x>0:1, x<=0:a}.
tinyopt::losses::DefineLoss
DefineLoss(Sigmoid, 1.0/(1.0+exp(-x)), l.unaryExpr([](auto x) -> Scalar { return x *(Scalar(1.0) - x);}).reshaped().asDiagonal())
Sigmoid = 1/(1+e^-x), derivative = Sigmoid(x) * (1 - Sigmoid(x)).
include
tinyopt
losses
activations.h
Generated by
1.18.0