Hba.NeuralNet
1.0.1
dotnet add package Hba.NeuralNet --version 1.0.1
NuGet\Install-Package Hba.NeuralNet -Version 1.0.1
<PackageReference Include="Hba.NeuralNet" Version="1.0.1" />
<PackageVersion Include="Hba.NeuralNet" Version="1.0.1" />
<PackageReference Include="Hba.NeuralNet" />
paket add Hba.NeuralNet --version 1.0.1
#r "nuget: Hba.NeuralNet, 1.0.1"
#:package Hba.NeuralNet@1.0.1
#addin nuget:?package=Hba.NeuralNet&version=1.0.1
#tool nuget:?package=Hba.NeuralNet&version=1.0.1
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 | Versions 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. |
-
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.