ghostflow_nn/
lib.rs

1//! GhostFlow Neural Network Layers
2//!
3//! High-level building blocks for neural networks.
4
5pub mod module;
6pub mod linear;
7pub mod conv;
8pub mod norm;
9pub mod activation;
10pub mod dropout;
11pub mod loss;
12pub mod init;
13pub mod attention;
14pub mod transformer;
15pub mod embedding;
16pub mod pooling;
17pub mod rnn;
18pub mod quantization;
19pub mod distributed;
20pub mod serialization;
21pub mod onnx;
22pub mod inference;
23pub mod gnn;
24pub mod rl;
25pub mod federated;
26pub mod differential_privacy;
27pub mod adversarial;
28
29pub use module::Module;
30pub use linear::Linear;
31pub use conv::{Conv1d, Conv2d, Conv3d, TransposeConv2d};
32pub use norm::{BatchNorm1d, BatchNorm2d, LayerNorm, GroupNorm, InstanceNorm};
33pub use activation::*;
34pub use dropout::Dropout;
35pub use loss::*;
36pub use attention::{MultiHeadAttention, scaled_dot_product_attention};
37pub use transformer::{
38    TransformerEncoder, TransformerEncoderLayer,
39    TransformerDecoderLayer, FeedForward,
40    PositionalEncoding, RotaryEmbedding,
41};
42pub use embedding::Embedding;
43pub use pooling::*;
44pub use rnn::{LSTM, LSTMCell, GRU, GRUCell};
45pub use quantization::{
46    QuantizedTensor, QuantizationConfig, QuantizationScheme,
47    QuantizationAwareTraining, DynamicQuantization,
48};
49pub use distributed::{
50    DistributedConfig, DistributedBackend, DataParallel, ModelParallel,
51    GradientAccumulator, DistributedDataParallel, PipelineParallel,
52};
53pub use serialization::{
54    ModelCheckpoint, ModelMetadata, save_model, load_model,
55};
56pub use gnn::{
57    Graph, GCNLayer, GATLayer, GraphSAGELayer, MPNNLayer, AggregatorType,
58};
59pub use rl::{
60    ReplayBuffer, Experience, DQNAgent, QNetwork,
61    PolicyNetwork, REINFORCEAgent, ActorCriticAgent, ValueNetwork, PPOAgent,
62};
63pub use federated::{
64    FederatedClient, FederatedServer, AggregationStrategy,
65    SecureAggregation, DifferentialPrivacy,
66};
67pub use onnx::{
68    ONNXModel, ONNXNode, ONNXTensor, ONNXDataType, ONNXAttribute,
69    tensor_to_onnx, onnx_to_tensor,
70};
71pub use inference::{
72    InferenceConfig, InferenceOptimizer, InferenceSession,
73    BatchInference, warmup_model,
74};
75pub use differential_privacy::{
76    DPConfig, PrivacyAccountant, DPSGDOptimizer, PATEEnsemble, LocalDP,
77};
78pub use adversarial::{
79    AttackConfig, AttackType, AdversarialAttack, AdversarialTrainingConfig,
80    AdversarialTrainer, RandomizedSmoothing,
81};
82
83/// Prelude for convenient imports
84pub mod prelude {
85    pub use crate::{Module, Linear, Conv1d, Conv2d, Conv3d, TransposeConv2d};
86    pub use crate::{BatchNorm1d, BatchNorm2d, LayerNorm, GroupNorm, InstanceNorm, Dropout};
87    pub use crate::activation::*;
88    pub use crate::loss::*;
89    pub use crate::attention::MultiHeadAttention;
90    pub use crate::transformer::{TransformerEncoder, TransformerEncoderLayer};
91    pub use crate::embedding::Embedding;
92    pub use crate::rnn::{LSTM, GRU};
93}