2 个版本
0.1.1 | 2021 年 7 月 10 日 |
---|---|
0.1.0 | 2021 年 7 月 10 日 |
#1452 在 算法
18KB
52 行
激活函数
描述
这是名为 activation_functions
的 Rust crate 的源代码
目录
内容 |
---|
信息 |
文档 (GitHub) (docs.rs) |
一些信息
名称 | 值 |
---|---|
语言 | Rust |
程序员 | SnefDen |
版本 | 0.1.0 |
最后更新 | 10.07.2021 |
文档
目录
sigmoid | 二进制步进 | tanh | 线性整流单元 | sigmoid 线性单元 | 高斯 | |
---|---|---|---|---|---|---|
f32 | f32::sigmoid | f32::bstep | f32::tanh | f32::relu | f32::silu | f32::gaussian |
f64 | f64::sigmoid | f64::bstep | f64::tanh | f64::relu | f64::silu | f64::gaussian |
f32
sigmoid(x)
信息
参数
// variable stands for parameter
let x:f32; // float32
内部使用
// variables
let x:f32; // parameter
let result:f32; // return variable
// functions
std::f32::consts::E.powf();
返回
// variable stands for return
let result:f32; // float32
示例
let x:f32 = 0.5;
let answer = sigmoid(x);
println!("sigmoid({}) => {}",x,answer);
将按此格式打印答案和给定的 x 值
sigmoid(0.5) => 0.62245935
实现
pub fn sigmoid(x:f32) -> f32 {
1 as f32 / (1 as f32 + std::f32::consts::E.powf(-x))
}
bstep(x)
信息
参数
// variable stands for parameter
let x:f32; // float32
内部使用
// variables
let x:f32; // parameter
let result:f32; // return variable
// functions
std::f32::consts::E.powf();
返回
// variable stands for return
let result:f32; // float32
示例
let x:f32 = 0.5;
let answer = bstep(x);
println!("bstep({}) => {}",x,answer);
将按此格式打印答案和给定的 x 值
bstep(0.5) => 1.0
实现
pub fn bstep(x:f32) -> f32 {
if x<0 as f32 {
0 as f32
} else {
1 as f32
}
}
tanh(x)
信息
参数
// variable stands for parameter
let x:f32; // float32
内部使用
// variables
let x:f32; // parameter
let result:f32; // return variable
// functions
std::f32::consts::E.powf();
返回
// variable stands for return
let result:f32; // float32
示例
let x:f32 = 0.5;
let answer = tanh(x);
println!("tanh({}) => {}",x,answer);
将按此格式打印答案和给定的 x 值
tanh(0.5) => 0.46211714
实现
pub fn tanh(x:f32) -> f32 {
(std::f32::consts::E.powf(x) - std::f32::consts::E.powf(-x)) / (std::f32::consts::E.powf(x) + std::f32::consts::E.powf(-x))
}
relu(x)
信息
参数
// variable stands for parameter
let x:f32; // float32
内部使用
// variables
let x:f32; // parameter
let result:f32; // return variable
// functions
std::f32::consts::E.powf();
返回
// variable stands for return
let result:f32; // float32
示例
let x:f32 = 0.5;
let answer = relu(x);
println!("relu({}) => {}",x,answer);
将按此格式打印答案和给定的 x 值
relu(0.5) => 1.0
实现
pub fn relu(x:f32) -> f32 {
if x<=0 as f32 {
0 as f32
} else {
1 as f32
}
}
silu(x)
信息
参数
// variable stands for parameter
let x:f32; // float32
内部使用
// variables
let x:f32; // parameter
let result:f32; // return variable
// functions
std::f32::consts::E.powf();
返回
// variable stands for return
let result:f32; // float32
示例
let x:f32 = 0.5;
let answer = silu(x);
println!("silu({}) => {}",x,answer);
将按此格式打印答案和给定的 x 值
silu(0.5) => 0.31122968
实现
pub fn silu(x:f32) -> f32 {
x / (1 as f32 + std::f32::consts::E.powf(-x))
}
gaussian(x)
信息
参数
// variable stands for parameter
let x:f32; // float32
内部使用
// variables
let x:f32; // parameter
let result:f32; // return variable
// functions
std::f32::consts::E.powf();
返回
// variable stands for return
let result:f32; // float32
示例
let x:f32 = 0.5;
let answer = gaussian(x);
println!("gaussian({}) => {}",x,answer);
将按此格式打印答案和给定的 x 值
高斯(0.5) => 0.7788008
实现
pub fn gaussian(x:f32) -> f32 {
std::f32::consts::E.powf(-(x*x))
}
f64
sigmoid(x)
信息
参数
// variable stands for parameter
let x:f64; // float64
内部使用
// variables
let x:f64; // parameter
let result:f64; // return variable
// functions
std::f64::consts::E.powf();
返回
// variable stands for return
let result:f64; // float64
示例
let x:f64 = 0.5;
let answer = sigmoid(x);
println!("sigmoid({}) => {}",x,answer);
将按此格式打印答案和给定的 x 值
sigmoid(0.5) => 0.62245935
实现
pub fn sigmoid(x:f64) -> f64 {
1 as f64 / (1 as f64 + std::f64::consts::E.powf(-x))
}
bstep(x)
信息
参数
// variable stands for parameter
let x:f64; // float64
内部使用
// variables
let x:f64; // parameter
let result:f64; // return variable
// functions
std::f64::consts::E.powf();
返回
// variable stands for return
let result:f64; // float64
示例
let x:f64 = 0.5;
let answer = bstep(x);
println!("bstep({}) => {}",x,answer);
将按此格式打印答案和给定的 x 值
bstep(0.5) => 1.0
实现
pub fn bstep(x:f64) -> f64 {
if x<0 as f64 {
0 as f64
} else {
1 as f64
}
}
tanh(x)
信息
参数
// variable stands for parameter
let x:f64; // float64
内部使用
// variables
let x:f64; // parameter
let result:f64; // return variable
// functions
std::f64::consts::E.powf();
返回
// variable stands for return
let result:f64; // float64
示例
let x:f64 = 0.5;
let answer = tanh(x);
println!("tanh({}) => {}",x,answer);
将按此格式打印答案和给定的 x 值
tanh(0.5) => 0.46211714
实现
pub fn tanh(x:f64) -> f64 {
(std::f64::consts::E.powf(x) - std::f64::consts::E.powf(-x)) / (std::f64::consts::E.powf(x) + std::f64::consts::E.powf(-x))
}
relu(x)
信息
参数
// variable stands for parameter
let x:f32; // float32
内部使用
// variables
let x:f32; // parameter
let result:f32; // return variable
// functions
std::f32::consts::E.powf();
返回
// variable stands for return
let result:f32; // float32
示例
let x:f32 = 0.5;
let answer = relu(x);
println!("relu({}) => {}",x,answer);
将按此格式打印答案和给定的 x 值
relu(0.5) => 1.0
实现
pub fn relu(x:f32) -> f32 {
if x<=0 as f32 {
0 as f32
} else {
1 as f32
}
}
silu(x)
信息
参数
// variable stands for parameter
let x:f64; // float64
内部使用
// variables
let x:f64; // parameter
let result:f64; // return variable
// functions
std::f64::consts::E.powf();
返回
// variable stands for return
let result:f64; // float64
示例
let x:f64 = 0.5;
let answer = silu(x);
println!("silu({}) => {}",x,answer);
将按此格式打印答案和给定的 x 值
silu(0.5) => 0.31122968
实现
pub fn silu(x:f64) -> f64 {
x / (1 as f64 + std::f64::consts::E.powf(-x))
}
gaussian(x)
信息
参数
// variable stands for parameter
let x:f64; // float64
内部使用
// variables
let x:f64; // parameter
let result:f64; // return variable
// functions
std::f64::consts::E.powf();
返回
// variable stands for return
let result:f64; // float64
示例
let x:f64 = 0.5;
let answer = gaussian(x);
println!("gaussian({}) => {}",x,answer);
将按此格式打印答案和给定的 x 值
高斯(0.5) => 0.7788008
实现
pub fn gaussian(x:f64) -> f64 {
std::f64::consts::E.powf(-(x*x))
}