Hba.NeuralNet 1.0.1

dotnet add package Hba.NeuralNet --version 1.0.1
                    
NuGet\Install-Package Hba.NeuralNet -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Hba.NeuralNet" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Hba.NeuralNet" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Hba.NeuralNet" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Hba.NeuralNet --version 1.0.1
                    
#r "nuget: Hba.NeuralNet, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Hba.NeuralNet@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Hba.NeuralNet&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Hba.NeuralNet&version=1.0.1
                    
Install as a Cake Tool

Hba.NeuralNet

Hba.NeuralNet es una librería ligera de redes neuronales para C# que permite integrar Machine Learning directamente en aplicaciones .NET.

Implementa un Perceptrón Multicapa (MLP) con Backpropagation, optimización Adam, funciones de activación modernas y herramientas para evaluar modelos.

Está diseñada para ser simple, ligera y fácil de usar, ideal para desarrolladores que quieren experimentar con Machine Learning sin depender de frameworks complejos.


Características principales

  • Perceptrón multicapa (MLP)
  • Algoritmo de entrenamiento Backpropagation
  • Optimizador Adam
  • Normalización automática de datos
  • Funciones de activación:
    • ReLU
    • Sigmoid
    • Tanh
    • Softmax
    • Linear
  • Funciones de pérdida:
    • MSE
    • MAE
    • CrossEntropy
  • Métricas de evaluación:
    • Accuracy
    • MSE
    • MAE
  • Guardado y carga de modelos en JSON

Instalación

Usando .NET CLI

dotnet add package Hba.NeuralNet

Usando NuGet Package Manager

Install-Package Hba.NeuralNet

Ejemplo de uso

using Hba.NeuralNet;
using System.Collections.Generic;

// Crear red neuronal: 2 inputs, 4 hidden, 1 output
var net = new Perceptron(
    new int[] { 2, 4, 1 },
    ActivationType.ReLU,
    ActivationType.Sigmoid
);

// Datos de entrenamiento (XOR)
var inputs = new List<double[]>
{
    new double[] {0,0},
    new double[] {0,1},
    new double[] {1,0},
    new double[] {1,1}
};

var outputs = new List<double[]>
{
    new double[] {0},
    new double[] {1},
    new double[] {1},
    new double[] {0}
};

// Configuración de entrenamiento
var config = new NeuralNetConfig
{
    LearningRate = 0.01,
    MaxIterations = 5000,
    BatchSize = 4,
    LossFunction = LossFunctionType.MSE
};

// Entrenar la red
net.Train(inputs, outputs, config);

// Realizar predicción
var prediction = net.Predict(new double[] {1,0});
Console.WriteLine($"Predicción: {prediction[0]}");

// Evaluar el modelo
var metrics = net.Evaluate(inputs, outputs);
Console.WriteLine($"Accuracy: {metrics.Accuracy}");
Console.WriteLine($"MSE: {metrics.MSE}");
Console.WriteLine($"MAE: {metrics.MAE}");

// Guardar y cargar modelo
net.SaveNetwork("model.json");
var net2 = new Perceptron().LoadNetwork("model.json");

Casos de uso

  • Clasificación
  • Regresión
  • Predicción de datos
  • Análisis de patrones
  • Sistemas inteligentes en aplicaciones .NET
  • Proyectos educativos de Machine Learning

Normalización de datos

Hba.NeuralNet incluye un sistema de normalización automática que ayuda a mejorar la estabilidad del entrenamiento de la red neuronal.

Por defecto la librería normaliza los datos de entrada para que estén en rangos adecuados para el aprendizaje.

Sin embargo, en algunos casos puede ser recomendable desactivar esta característica, por ejemplo:

  • Cuando los datos ya están previamente normalizados
  • Cuando se utilizan valores binarios (como en el problema XOR)
  • Cuando se desea aplicar un método de normalización personalizado
// Desactivar normalización automática
net.UseNormalization = false;

Cuando la normalización está desactivada, la red neuronal utilizará los valores de entrada exactamente como fueron proporcionados.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 142 3/20/2026
1.0.0 127 3/15/2026