인덱스와 모양 정보와 함께 0이 아닌 값만 저장하는 메모리 효율적인 텐서로, 희소 데이터 세트에 대한 저장 공간과 계산량을 최적화합니다.
작성자: Databricks 직원
Python은 일명 numpy라는 기본 내장 라이브러리를 제공하여 다차원 배열을 조작합니다. pytensor 라이브러리를 개발하려면 기본적으로 이 라이브러리부터 구성하고 사용해야 합니다.
Sptensor는 희소 텐서를 나타내는 클래스입니다. 희소 텐서란 대부분의 입력 항목이 0인 Dataset입니다. 대형 대각선 행렬(diagonal matrix)이 대표적인 예입니다. (값이 0인 원소가 많음). 이것은 텐서 개체의 전체 값을 저장하지 않고, 0이 아닌 값과 그에 상응하는 좌표를 저장합니다. 희소 텐서의 스토리지 형식을 이용하면 0이 아닌 값만 저장할 수 있으므로 스토리지 요구사항을 줄이고 0의 값과 관련된 불필요한 자동(silent) 연산을 없애줍니다. 주된 속성은 다음과 같습니다.
희소 텐서의 형태입니다.
이외에 주요 함수는 다음과 같습니다.
Python에서 다차원 배열 조작을 위한 기본 라이브러리는 무엇인가요?
Python은 다차원 배열과 행렬 연산을 위한 기본 내장 라이브러리로 numpy를 제공합니다. numpy는 배열 생성, 인덱싱, 변환, 연산 등 다양한 기능을 제공하며 pytensor 라이브러리 개발 시 기본적으로 활용됩니다.
Sptensor(희소 텐서)란 무엇이며, 왜 사용하나요?
Sptensor는 대부분 원소가 0인 희소 텐서 를 효율적으로 표현하기 위한 클래스입니다. 전체 텐서 값을 저장하지 않고 0이 아닌 값들과 그 위치만 저장하여 메모리 사용을 줄이고 불필요한 연산을 방지합니다. 예를 들어 대형 대각선 행렬이 이에 해당합니다.
Sptensor 클래스는 어떤 방식으로 희소 텐서를 저장하고 사용하나요?
Sptensor는 대부분 0인 희소 텐서에서 0이 아닌 값(vals)과 그 좌표(subs)만 저장하는 효율적인 데이터 구조입니다. 이를 통해 메모리 사용량과 계산 비용을 줄이고, 생성자 및 tondarray, permute, copy, nnz, ndims 등 주요 함수로 객체 생성부터 변환과 조작까지 지원합니다.
블로그를 구독하고 최신 게시물을 이메일로 받아보세요.