Documentaciónguardar_red(red, archivo)

guardar_red(red,archivo)\texttt{guardar\_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
Solo lectura
"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 red contenga W1, b1, W2 y b2.
  • Valida que las dimensiones internas de la red sean coherentes.
  • Si no puede abrir el archivo para escritura, emite ERROR().

Comportamiento

  • Serializa W1, b1, W2 y b2 en 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ámetroTipoDescripción
redTABLATabla que representa la red neuronal y sus parametros.
archivoSTRINGNombre 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
Solo lectura
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.