🔎
Más
Especiales
Filtros
IA hace 1 h

Definiendo nuevos tipos de Jax con hijax

Definiendo nuevos tipos de Jax con hijax

JAX permite a los desarrolladores definir nuevos tipos de datos personalizados utilizando hijax. Esto es útil cuando se necesita trabajar con datos agregados que tienen sus propias reglas y restricciones.

Los tipos de datos en JAX suelen ser arrays, pero a veces es necesario crear tipos más complejos. Un ejemplo de esto es un array cuantizado, que consta de un par de arrays: uno con valores int8 y otro con una escala de punto flotante compartida por cada fila. Para crear un tipo de dato personalizado como este, se debe subclassificar HiType y registrar una clase de Python como portadora de valores de ese tipo.

“También es necesario crear primitivas hijax que produzcan y consuman valores del nuevo tipo”

El proceso de creación de un tipo de dato personalizado en JAX implica varios pasos. Primero, se debe implementar la clase HiType y definir cómo se convierte el tipo y sus valores en arrays ordinarios. Luego, se debe registrar la clase de Python como portadora de valores de ese tipo utilizando la función register_hitype. También es necesario crear primitivas hijax que produzcan y consuman valores del nuevo tipo.

Un ejemplo de tipo de dato personalizado es el array cuantizado. Un array cuantizado es un par de arrays: uno con valores int8 y otro con una escala de punto flotante compartida por cada fila. Para crear este tipo de dato, se debe definir una clase QArray que contenga los valores int8 y la escala de punto flotante. Luego, se debe registrar la clase QArray como un tipo de dato personalizado en JAX.

La creación de tipos de datos personalizados en JAX ofrece varias ventajas. Permite a los desarrolladores definir reglas y restricciones para los datos, lo que ayuda a prevenir errores y a garantizar la consistencia de los datos. También permite a los desarrolladores crear tipos de datos más complejos y personalizados, lo que puede ser útil en aplicaciones específicas. Además, la creación de tipos de datos personalizados en JAX es flexible y permite a los desarrolladores adaptar los tipos de datos a sus necesidades específicas.

Más sobre IA