주요 컨텐츠로 이동

Sparse Tensor(희소텐서)

Databricks 무료로 시작하기

Python은 일명 numpy라는 기본 내장 라이브러리를 제공하여 다차원 배열을 조작합니다. pytensor 라이브러리를 개발하려면 기본적으로 이 라이브러리부터 구성하고 사용해야 합니다. Sparse Tensor(희소 텐서)Sptensor는 희소 텐서를 나타내는 클래스입니다. 희소 텐서란 대부분의 입력 항목이 0인 Dataset입니다. 대형 대각선 행렬(diagonal matrix)이 대표적인 예입니다. (값이 0인 원소가 많음). 이것은 텐서 개체의 전체 값을 저장하지 않고, 0이 아닌 값과 그에 상응하는 좌표를 저장합니다. 희소 텐서의 스토리지 형식을 이용하면 0이 아닌 값만 저장할 수 있으므로 스토리지 요구사항을 줄이고 0의 값과 관련된 불필요한 자동(silent) 연산을 없애줍니다. 주된 속성은 다음과 같습니다.

  • vals(numpy.ndarray) 희소 텐서의 0이 아닌 값을 1차원 배열한 것입니다.
  • subs(numpy.ndarray) vals의 값 좌표를 2차원 배열한 것입니다.
  • shape(tuple)

희소 텐서의 형태입니다.

  • func(binary operator) 이 함수는 희소 텐서를 누적기로 구성하는 데 쓰입니다.

이외에 주요 함수는 다음과 같습니다.

  • __init__(self, subs, vals, shape = None, func=sum.__call__) sptensor 클래스의 생성자입니다. subs와 vals(numpy.ndarray) 또는 (list)는 sptensor의 좌표와 값입니다.
  • tondarray(self) 이 함수는 sptensor와 값이 같은 numpy. ndarray 개체를 반환합니다.
  • permute(self, order) 이 함수를 적용하면 주어진 순서(list)대로 배치된 sptensor 개체를 반환합니다.
  • ipermute(self, order) 주어진 순서(list)와 반대로 배치된 sptensor 개체를 반환합니다.
  • copy(self) sptensor의 복사된 sptensor 개체를 반환합니다.
  • totensor(self) sptensor와 값이 같은 텐서 개체를 반환합니다.
  • nnz(self) sptensor의 0이 아닌 요소 수를 반환합니다.
  • ndims(self) 텐서의 차원 수를 반환합니다.
  • dimsize(self, ind)
  • 지정된 차원의 크기를 반환합니다. shape[ind]와 같습니다.

추가 자료

용어집으로 돌아가기