Skip to content

Serialización de Tensores y Modelos (Save/Load) #8

@Gilberto-Galan

Description

@Gilberto-Galan

Para que T-Tensor pase de ser un motor de prueba a una herramienta de ciclo de vida completo, necesitamos persistencia de datos. Se requiere implementar un formato de archivo binario y versionado (ej. .ttensor) que permita volcar el estado de los pesos y sesgos desde la memoria de la GPU hacia el disco, y viceversa, de forma segura.

Criterios de Aceptación

  • Es posible guardar un modelo completo (estado de múltiples tensores) en un solo archivo en el disco local.
  • Es posible cargar el archivo y restaurar la arquitectura del modelo con los pesos exactos.
  • El sistema detecta y lanza un error claro si se intenta cargar un archivo corrupto, con una versión incompatible o con dimensiones de tensores (shapes) que no coinciden.

Checklist Técnica

  • Diseñar la cabecera (header) del archivo binario: Número mágico, versión del formato, y tabla de metadatos (nombres de tensores, formas, tipos de datos).
  • Implementar la lógica I/O en C++ usando flujos binarios (std::ofstream, std::ifstream).
  • Crear el mecanismo para mover datos secuencialmente: GPU -> RAM (CPU) -> Disco, y el camino inverso para la carga.
  • Exponer los métodos save() y load() en la API de Python.

Pruebas Mínimas

  • Prueba End-to-End (E2E): Inicializar un tensor con valores aleatorios en Python, guardarlo a disco, modificar el tensor original en memoria, cargar el archivo desde el disco y hacer un assert de que los valores originales se restauraron correctamente.
  • Prueba de Fallo: Intentar cargar un archivo de texto plano o un archivo con dimensiones alteradas para asegurar que el motor captura la excepción sin hacer crash de C++.

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions