Ir al contenido principal

¿Qué es un tensor disperso?

Un tensor que utiliza la memoria de manera eficiente y que almacena solo valores distintos de cero con sus índices y forma, optimizando el almacenamiento y el cálculo para conjuntos de datos dispersos.

10 Personas Data Science

Summary

  • Codifica tensores mediante tres componentes: matriz de índices para posiciones distintas de cero, matriz de valores para los datos reales y dense_shape, que define las dimensiones totales.
  • Reduce drásticamente el consumo de memoria para datos como incrustaciones de texto, matrices de interacción usuario-elemento y nubes de puntos 3D con una dispersión superior al 90 %.
  • Admite operaciones especializadas como la multiplicación de matrices dispersas y las convoluciones dispersas, aunque algunas operaciones pueden densificar los datos y causar picos de memoria si no se gestionan con cuidado.

Python ofrece una biblioteca incorporada llamada numpy para manipular arreglos multidimensionales. La organización y el uso de esta biblioteca son un requisito principal para desarrollar la biblioteca pytensor. Tensor disperso Sptensor es una clase que representa el tensor disperso. Un tensor disperso es un conjunto de datos en el que la mayoría de las entradas son cero; un ejemplo de ello sería una matriz diagonal grande. (que tiene muchos elementos cero). No almacena los valores completos del objeto tensor, sino que almacena los valores no nulos y sus coordenadas correspondientes. Los formatos de almacenamiento de tensores dispersos nos permiten almacenar solo los valores distintos de cero, lo que reduce los requisitos de almacenamiento y elimina los cálculos silenciosos innecesarios que involucran valores cero. Estos son sus atributos principales:

  • vals (numpy.ndarray) Un arreglo unidimensional de valores distintos de cero del tensor disperso.
  • subs (numpy.ndarray) Un array bidimensional de coordenadas de los valores en vals.
  • shape(tuple)
LÍDER 5X

Gartner®: Databricks, líder en bases de datos en la nube

La forma del tensor disperso.

  • func(operador binario) Esta función se utiliza para construir el tensor disperso como un acumulador.

Además, sus funciones principales son:

  • __init__(self, subs, vals, shape = None, func=sum.__call__) Constructor para la clase sptensor. subs y vals (numpy.ndarray) o (list) son las coordenadas y los valores del sptensor.
  • tondarray(self) Esta función devuelve un numpy. objeto ndarray que tiene los mismos valores que el sptensor.
  • permute(self, order) Al aplicar esta función, se devolverá el objeto sptensor permutado según el orden (lista) especificado.
  • ipermute(self, order) Devuelve el objeto sptensor que se permuta por la inversa del orden (lista) especificado.
  • copy(self) Devuelve el objeto sptensor copiado del sptensor.
  • totensor(self) Devuelve el objeto tensor que tiene los mismos valores que el sptensor.
  • nnz(self) Devuelve la cantidad de elementos distintos de cero en el sptensor.
  • ndims(self) Devuelve la cantidad de dimensiones del tensor.
  • dimsize(self, ind)
  • Devuelve el tamaño de la dimensión especificada. Igual que shape[ind].

Recursos adicionales

No te pierdas ninguna publicación de Databricks.

Suscríbete a nuestro blog y recibe las últimas publicaciones en tu bandeja de entrada.