Skip to content

Latest commit

 

History

History
102 lines (72 loc) · 3.08 KB

File metadata and controls

102 lines (72 loc) · 3.08 KB

Changelog

All notable changes to KortexDL C++ core will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


[Unreleased]

To Fix

  • Nesterov optimizer triple-update bug (see KNOWN_ISSUES.md)
  • Python bindings for Optimizer.update() and Network::train_batch_with_optimizer()

[2.0.1] - 2026-01-17

Fixed

Critical: Layer.cpp Buffer Overflow

  • Issue: last_batch_size_ was updated at function entry, causing cache resize check to always fail
  • Impact: Buffer overflow when std::copy wrote to undersized vectors
  • Fix: Moved last_batch_size_ update to inside resize blocks
  • Files: src/core/Layer.cpp (lines 249-306)

Critical: Layer.cpp Uninitialized Variable

  • Issue: last_batch_size_ member not initialized in constructor
  • Impact: Undefined behavior on first forward_batch call
  • Fix: Initialize to 0 in constructor
  • Files: src/core/Layer.cpp (line 105-106)

Critical: Layer.cpp Cache Bug

  • Issue: In optimized path (batch_size >= 64), last_input_ and last_pre_activation_ were not cached before applying activation
  • Impact: Backpropagation failed for non-linear activations (Tanh, Sigmoid) which rely on cached pre-activations
  • Fix: Cache both buffers before in-place activation
  • Files: src/core/Layer.cpp (lines 257-290)

Layer.cpp Gradient Handling

  • Issue: Aggressive hardcoded gradient clipping (threshold=1.0) prevented learning
  • Impact: Network couldn't converge on simple problems
  • Fix: Removed hardcoded clipping (threshold should be user-configurable)
  • Files: src/core/Layer.cpp (lines 568-595)

Verified

Core Correctness

  • Test: Numerical gradient checking (finite difference vs analytical)
  • Result: Maximum error < 4.3e-5 (PASSED)
  • Confidence: Core backpropagation is mathematically sound
  • Evidence: See core_audit_report.md

[2.0.0] - 2025-12

Added

  • Python bindings via pybind11
  • CNN layers (Conv2d, MaxPool2d, BatchNorm2d)
  • 12 optimizer implementations
  • 15 activation functions
  • Comprehensive C++ test suite

Changed

  • Upgraded to Intel oneAPI MKL 2025.2
  • Modern C++20 codebase
  • Enhanced error handling

[1.0.0] - Initial Release

Added

  • Dense neural networks
  • Basic optimizers (SGD, Adam)
  • Core activation functions
  • MSE and Cross-Entropy losses

Versioning Notes

Version Format: MAJOR.MINOR.PATCH

  • MAJOR: Incompatible API changes
  • MINOR: Backwards-compatible functionality additions
  • PATCH: Backwards-compatible bug fixes

Current Status

Stable: Core backpropagation engine
Beta: Python bindings (incomplete API exposure)
Experimental: Advanced optimizers (some have bugs)


References

  • Core Audit Report: See docs/core_audit_report.md for detailed analysis
  • Known Issues: See KNOWN_ISSUES.md for current limitations
  • Python Changes: See kortexdl-python/README.md for Python-specific updates