tensorflow에서 지원하는 텐서를 담을 수 있는 데이터구조 중에서 RaggedTensor라는 것이 있다.
ragged는 irregular와 같은 의미로, RaggedTensor는 각 차원마다 다른 길이(length)를 가질 수 있는 데이터 구조이다.
예시로
tf.RaggedTensor(
values=Tensor("StringSplit/StringSplitV2:1", shape=(None,), dtype=string),
row_splits=Tensor("StringSplit/RaggedFromValueRowIds/RowPartitionFromValueRowIds/concat:0", shape=(None,), dtype=int64)
)
values는 실제로 포함하고있는 데이터로 "StringSplit/StringSplitV2:1"라는 이름의 Tensor를 가지고 있다는 뜻이다. 그 Tensor의 shape가 None이라고 표시된 것은 차원의 길이가 고정되지 않았다는 의미이다. dtype은 string으로 데이터의 타입이 문자열의 형태라는 의미다.
row_splits는 ragged tensor에 대한 row_split을 표현하는 데이터를 담고있다. 다시 말해 values의 tensor의 row 사이를 split하기 위한 indices 정보를 담고있다. row_splits의 속성들은 values에서 해석한것과 같이 이해하면 된다.
'Programming > python-deep learning' 카테고리의 다른 글
[Tensorflow 2.0] 텐서플로우 데이터 구조 파악하기 (tf.data.Dataset + TFRecord) (0) | 2024.01.19 |
---|---|
Tensorflow의 Loss Function과 Metrics의 차이 (0) | 2023.10.05 |
[Tensorflow] 그림으로 이해하는 CNN 연산과정 (코드포함) (0) | 2023.09.21 |
Pytorch로 Tensor Operation 다루는 법! (기본 기능 모음) (0) | 2023.09.01 |
Tensor란 무엇인가? (+ Python Numpy Tensor 구현 및 기본 기능) (1) | 2023.08.31 |