concision_neural/
lib.rs

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