concision_neural/
lib.rs

1/*
2    Appellation: concision-neural <library>
3    Contrib: @FL03
4*/
5//! # concision-neural
6//!
7//! This crate focuses on implementing various neural network components, including models,
8//! layers, and training mechanisms.
9//!
10//! ## Overview
11//!
12//! ## Features
13//!
14//! - [`Model`]: A trait for defining a neural network model.
15//! - [`ModelParamsBase`]: A dedicated object capable of storing the parameters for both
16//!   shallow and deep neural networks.
17//! - [`StandardModelConfig`]: A standard configuration for the models
18//! - [`Predict`]: A trait extending the basic [`Forward`](cnc::Forward) pass
19//! - [`Train`]: A trait for training a neural network model.
20#![crate_type = "lib"]
21#![cfg_attr(not(feature = "std"), no_std)]
22#![allow(
23    clippy::missing_saftey_doc,
24    clippy::module_inception,
25    clippy::needless_doctest_main,
26    clippy::upper_case_acronyms
27)]
28
29#[cfg(feature = "alloc")]
30extern crate alloc;
31
32extern crate concision_core as cnc;
33
34#[doc(inline)]
35pub use self::{
36    config::prelude::*,
37    error::*,
38    layers::{Layer, LayerBase},
39    model::prelude::*,
40    traits::*,
41    types::*,
42};
43
44#[macro_use]
45pub(crate) mod macros {
46    #[macro_use]
47    pub mod seal;
48}
49
50pub mod config;
51pub mod error;
52pub mod layers;
53pub mod model;
54pub mod utils;
55
56pub(crate) mod traits {
57    #[doc(inline)]
58    pub use self::prelude::*;
59
60    pub(crate) mod hidden;
61    pub(crate) mod predict;
62    pub(crate) mod train;
63
64    mod prelude {
65        #[doc(inline)]
66        pub use super::hidden::*;
67        #[doc(inline)]
68        pub use super::predict::*;
69        #[doc(inline)]
70        pub use super::train::*;
71    }
72}
73
74pub(crate) mod types {
75    #[doc(inline)]
76    pub use self::prelude::*;
77
78    mod dropout;
79    mod key_value;
80
81    mod prelude {
82        #[doc(inline)]
83        pub use super::dropout::*;
84        #[doc(inline)]
85        pub use super::key_value::*;
86    }
87}
88
89#[doc(hidden)]
90pub mod prelude {
91    #[doc(no_inline)]
92    pub use super::config::prelude::*;
93    #[doc(no_inline)]
94    pub use crate::layers::prelude::*;
95    #[doc(no_inline)]
96    pub use crate::model::prelude::*;
97    #[doc(no_inline)]
98    pub use crate::traits::*;
99    #[doc(no_inline)]
100    pub use crate::types::*;
101}