border_candle_agent/mlp/
config.rs

1use crate::{util::OutDim, Activation};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Deserialize, Serialize, PartialEq, Clone)]
5/// Configuration of [`Mlp`](super::Mlp).
6pub struct MlpConfig {
7    pub in_dim: i64,
8    pub units: Vec<i64>,
9    pub out_dim: i64,
10    pub activation_out: Activation,
11}
12
13impl MlpConfig {
14    /// Creates configuration of MLP.
15    ///
16    /// * `activation_out` - If `true`, activation function is added in the final layer.
17    pub fn new(in_dim: i64, units: Vec<i64>, out_dim: i64, activation_out: Activation) -> Self {
18        Self {
19            in_dim,
20            units,
21            out_dim,
22            activation_out,
23        }
24    }
25}
26
27impl OutDim for MlpConfig {
28    fn get_out_dim(&self) -> i64 {
29        self.out_dim
30    }
31
32    fn set_out_dim(&mut self, out_dim: i64) {
33        self.out_dim = out_dim;
34    }
35}