1use crate as burn;
2
3use crate::module::Module;
4use crate::tensor::Tensor;
5use crate::tensor::backend::Backend;
6
7#[derive(Module, Clone, Debug, Default)]
10pub struct Gelu;
11
12impl Gelu {
13    pub fn new() -> Self {
15        Self {}
16    }
17
18    pub fn forward<B: Backend, const D: usize>(&self, input: Tensor<B, D>) -> Tensor<B, D> {
25        crate::tensor::activation::gelu(input)
26    }
27}
28
29#[cfg(test)]
30mod tests {
31    use super::*;
32
33    #[test]
34    fn display() {
35        let layer = Gelu::new();
36
37        assert_eq!(alloc::format!("{layer}"), "Gelu");
38    }
39}