Skip to content

Releases: angelhernandezm/NeuroForge

NeuroForge 1.0.1 - Bug Fixes

Choose a tag to compare

@angelhernandezm angelhernandezm released this 07 Sep 05:08
d8919cc

NeuroForge 1.0.1

🐛 Bug Fixes

Fixed Quick Start CNN configuration failures

Resolved several issues affecting the public Quick Start example and minimal ANN configurations.

Previously, optional configuration sections omitted from AnnBuilderConfig could be serialized as null, causing Python-side builder failures during model creation and training.

Examples of errors that could occur:

AttributeError: 'NoneType' object has no attribute 'get'
TypeError: '>' not supported between instances of 'NoneType' and 'int'

Improved Optional Configuration Handling

The Python runtime now safely handles omitted or null configuration values by applying appropriate defaults.

Notable fixes include:

  • Safe handling of missing params configuration
  • Safe handling of missing dataset validation_split
  • Improved null handling for dataset and training configuration sections
  • More resilient builder initialization when optional settings are omitted

Base Builder Hardening

Updated the builder initialization logic to normalize null configuration objects:

self.params = config.get("params") or {}
self.training = config.get("training") or {}
self.dataset = config.get("dataset") or {}

This allows ANN builders to use default values correctly when optional configuration blocks are not supplied.


✅ Validation

The published Quick Start example has been revalidated and now successfully:

  1. Initializes the Python/TensorFlow runtime
  2. Loads the CIFAR-10 dataset
  3. Builds a CNN using default configuration values
  4. Trains successfully without requiring explicit parameter definitions

📦 Upgrade

dotnet add package NeuroForge --version 1.0.1

Thank you to everyone trying NeuroForge during its early releases. This update improves first-run reliability and makes ANN configurations significantly more robust when working with minimal or partially specified settings.

v1.0.0 — First NuGet release

Choose a tag to compare

@angelhernandezm angelhernandezm released this 07 Sep 02:20

First public release of NeuroForge on NuGet.

dotnet add package NeuroForge

NeuroForge lets .NET developers build, train and export neural networks from strongly-typed C# configuration. It bootstraps and manages a Python/TensorFlow runtime for you, then hands back an ONNX model that runs anywhere — no Python or TensorFlow at inference time.

Highlights

Six ANN architectures

Configurable from a typed C# object or plain JSON, all through one unified API:

Architecture Best for
MLP Tabular data, feature-based prediction, regression
CNN Image classification, defect detection, computer vision
RNN / LSTM Time series, forecasting, sequential sensor data
Autoencoder Anomaly detection, compression, feature learning
GAN Synthetic data generation, data augmentation
Transformer Text classification, sentiment, sequence tasks

The GAN builder implements a genuine alternating adversarial training loop — frozen-discriminator combined model with train_on_batch for both networks — rather than a templated approximation.

Managed Python runtime

InitializeAsync() downloads and configures Python 3.11 plus a locked, tested TensorFlow 2.15 dependency set. No manual venv wrangling, no dependency conflicts to resolve by hand.

Dataset loading

Image folders, CSV/Excel, NumPy arrays, and built-in datasets (CIFAR-10, MNIST, IMDB), with optional normalization.

Automatic ONNX export

Every trained model is exported to both .h5 and .onnx, ready for ML.NET, ONNX Runtime, Azure ML, edge or mobile.

Training controls

EarlyStopping and ReduceLROnPlateau callback support, plus a configurable random seed for reproducible training runs.

Package contents

  • lib/net10.0/NeuroForge.Factory.dll with full XML documentation
  • Symbol package (.snupkg) with Source Link for step-through debugging
  • No external NuGet dependencies — the Python resources are embedded in the assembly

Requirements

  • .NET 10 or later
  • Windows 10/11
  • An elevated (Administrator) shell for first-time Python runtime setup, since the installer runs with InstallAllUsers=1
  • ~500 MB disk space for the Python environment

Known limitations

  • Windows only. Linux and macOS support is planned but not yet built.
  • The Python installer download has no checksum verification yet.
  • There is no automatic elevation prompt — you must start the shell as Administrator yourself.

Links

Contributions are welcome — especially Linux/macOS support, installer checksum verification, additional architectures and dataset loaders.