concision_neural/
lib.rs

1/*
2    Appellation: concision-neural <library>
3    Contrib: @FL03
4*/
5//! The neural network abstractions used to create and train models.
6//!
7//! ## Features
8//!
9//! - [Model]: A trait for defining a neural network model.
10//! - [ModelParams]: A structure for storing the parameters of a neural network model.
11//! - [StandardModelConfig]: A standard configuration for the models
12//! - [Predict]: A trait extending the basic [Forward](cnc::Forward) pass
13//! - [Train]: A trait for training a neural network model.
14//!
15//! ### _Work in Progress_
16//!
17//! - [LayerBase]: Functional wrappers for the [ParamsBase](cnc::ParamsBase) structure.
18
19#![crate_name = "concision_neural"]
20#![crate_type = "lib"]
21
22extern crate concision_core as cnc;
23
24#[doc(inline)]
25pub use self::{
26    error::*,
27    layers::{Layer, LayerBase},
28    model::prelude::*,
29    traits::prelude::*,
30    types::prelude::*,
31};
32
33#[macro_use]
34pub(crate) mod macros {
35    #[macro_use]
36    pub mod seal;
37}
38
39pub mod error;
40pub mod layers;
41pub mod model;
42pub mod utils;
43
44pub mod traits {
45    #[doc(inline)]
46    pub use self::prelude::*;
47
48    pub mod config;
49    pub mod predict;
50    pub mod train;
51
52    pub(crate) mod prelude {
53        #[doc(inline)]
54        pub use super::config::*;
55        #[doc(inline)]
56        pub use super::predict::*;
57        #[doc(inline)]
58        pub use super::train::*;
59    }
60}
61
62pub mod types {
63    #[doc(inline)]
64    pub use self::prelude::*;
65
66    pub mod dropout;
67    pub mod hyperparameters;
68
69    pub(crate) mod prelude {
70        #[doc(inline)]
71        pub use super::dropout::*;
72        #[doc(inline)]
73        pub use super::hyperparameters::*;
74    }
75}
76
77pub mod prelude {
78    #[doc(no_inline)]
79    pub use crate::error::*;
80    #[doc(no_inline)]
81    pub use crate::layers::prelude::*;
82    #[doc(no_inline)]
83    pub use crate::model::prelude::*;
84    #[doc(no_inline)]
85    pub use crate::traits::prelude::*;
86    #[doc(no_inline)]
87    pub use crate::types::prelude::*;
88}