A work-in-progress C++ neural network library designed for building, training, and evaluating deep learning models. This project focuses on creating a high-performance, modular implementation perfect for research and experimentation.
- 🚀 Modern C++: Built with C++17 for optimal performance and clean code
- 🔧 Modular Architecture: Easily extensible design for adding custom network architectures as well as custom activations
- ⚡ Neural Network Components: Complete support for sub-networks, activation functions, loss computations, and more
- 📦 CMake Ready: Seamless build system integration
- 🎯 Research Focused: Designed with experimentation and learning in mind
- 🧠 Integrated Visualizer:
- Full Live Network: Real-time display of all layers, neurons, and activations for a complete live view of the model
- Status Only: Lightweight view showing just the current network status, ideal for fast debugging or monitoring
- 💾 Parameter Persistence: Save and load trained model parameters for reuse, testing, or deployment
- ⚙️ GPU Support: Leverages CUDA for accelerated training and inference on compatible NVIDIA GPUs, boosting performance for large-scale models
- 💻 Flexible Device Support: Simple to switch between CPU and GPU for training and inference
- 🛠️ C++17-compatible compiler (GCC 7+, Clang 5+, MSVC 2017+)
- 📋 CMake 3.28 or later
# Clone the repository
git clone https://github.com/dredstone1/NeuralNetwork.git
# Navigate to project directory
cd NeuralNetwork
# Create and enter build directory
mkdir build && cd build
# Configure and build
cmake ..
make
NeuralNetwork/
├── 📂 src/ # Core library implementation
├── 📂 include/ # Public API headers
├── 📂 resources/ # Static assets
├── 📂 tests/ # Unit tests and validation
├── 📄 CMakeLists.txt
└── 📖 README.md
Contributions are more than welcome! Whether you're fixing bugs, adding features, or improving documentation:
- 🐛 Open issues for bugs or feature requests
- 🔀 Submit pull requests with your improvements
- 💡 Share ideas and suggestions
- 📖 Help improve documentation
This project is licensed under the MIT License. See the LICENSE file for complete details.
dredstone1 - GitHub Profile
⭐ If you find this project interesting, consider giving it a star!