Documentaciónguardar_red(red, archivo)
Nombre
guardar_red - Guarda una red entrenada en un archivo de texto.
Sinopsis
neural.guardar_red(red, archivo)
Descripcion
Serializa los bloques principales de parametros: W1, b1, W2 y b2.
El archivo queda listo para ser recuperado luego con cargar_red().
El formato almacenado responde a la arquitectura fija del modulo: una capa oculta y una capa de salida.
Cada bloque se escribe en una linea serializada, por ejemplo:
ejemplo.blox
"W1[20][10] = -0.01, -0.46, -0.34, ..., 0.39"
"b1[1][10] = 0.89, -0.13, 0.04, ..., 0.07"
Restringido: este ejemplo no puede ejecutarse en el Playground web porque la API requerida no está disponible en el sandbox.
Validaciones y casos borde
- Valida que la
TABLA redcontengaW1,b1,W2yb2. - Valida que las dimensiones internas de la red sean coherentes.
- Si no puede abrir el archivo para escritura, emite
ERROR().
Comportamiento
- Serializa
W1,b1,W2yb2en lineas separadas. - Conserva dimensiones y valores en formato de texto.
- Informa por salida estandar cuando la escritura finaliza con exito.
Funciones API relacionadas
neural.cargar_red()neural.extraer_W()neural.extraer_b()
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| red | TABLA | Tabla que representa la red neuronal y sus parametros. |
| archivo | STRING | Nombre o ruta del archivo de entrada o salida. |
Valor de retorno
VOID - No retorna valor; escribe la red en el archivo indicado.
Ejemplo
ejemplo.blox
INCLUIR "matrices.api"
INCLUIR "neural.api"
INCLUIR "graficos.api"
INCLUIR "tablas.api"
FUNCION probar_columna_x0(red)
FUNCION PRINCIPAL
INICIO "XOR con red neuronal en BLOX"
NUMERICO n_in, n_hid, n_out
NUMERICO m
NUMERICO tasa, epocas
NUMERICO i
TABLA red, red_tmp
MATRIZ W1[][], W2[][]
MATRIZ b1[][], b2[][]
MATRIZ X[][], Y[][]
VECTOR x_test[], y_pred[]
NUMERICO salida_red
NUMERICO salida_binaria
// ---------------------------------------
// 1. Definir dimensiones de la red
// ---------------------------------------
n_in = 2 // 2 entradas (X1, X2)
n_hid = 3 // 3 neuronas ocultas (podés probar 4 o más)
n_out = 1 // 1 salida (XOR binario)
m = 4 // 4 ejemplos en la tabla verdad
IMPRIMIR ("\n DIMENSIONES DE LA RED")
IMPRIMIR ("\n ----------------------\n")
IMPRIMIR ("\n Entradas = ", n_in)
IMPRIMIR ("\n Ocutas = ", n_hid)
IMPRIMIR ("\n Salidas = ", n_out)
IMPRIMIR ("\n")
// ---------------------------------------
// 2. Crear matrices de datos X (entrada) y Y (objetivo)
// ---------------------------------------
X = matrices.carga_cero(m, n_in)
Y = matrices.carga_cero(m, n_out)
// XOR - Tabla verdad
// X-Entrada
// Y-Salida
//
X = [ [ 0.00, 0.00 ],
[ 0.00, 1.00 ],
[ 1.00, 0.00 ],
[ 1.00, 1.00 ] ]
Y[0][0] = 0
Y[1][0] = 1
Y[2][0] = 1
Y[3][0] = 0
matrices.imprimir(X)
IMPRIMIR ("\n EJEMPLO: XOR - Tabla verdad")
IMPRIMIR ("\n ----------------------------\n")
IMPRIMIR ("\n X = \n")
matrices.imprimir(X)
IMPRIMIR ("\n Y = \n")
matrices.imprimir(Y)
IMPRIMIR ("\n")
// ---------------------------------------
// 3. Crear red y parámetros de entrenamiento
// ---------------------------------------
// 3.1) Crear red en una tabla “externa” a la función API
red = neural.crear_red_simple(n_in, n_hid, n_out)
tasa = 0.5 // 0.5
epocas = 10000 // Converge en 10.000 epocas
IMPRIMIR ("\nEntrenando red XOR...")
red = neural.entrenar_mse(red, X, Y, tasa, epocas)
W1 = red.W1
W2 = red.W2
b1 = red.b1
b2 = red.b2
// "guardar_red(red, archivo)" y "red = cargar_red(archivo)"
//
STRING archivo
archivo = "Red XOR.nn"
neural.guardar_red(red, archivo)
matrices.imprimir(W1)
matrices.imprimir(W2)
matrices.imprimir(b1)
matrices.imprimir(b2)
IMPRIMIR ("\nEntrenamiento finalizado.")
IMPRIMIR ("\n-------------------------------------\n\n")
FINAL
Restringido: este ejemplo no puede ejecutarse en el Playground web porque la API requerida no está disponible en el sandbox.