activeloopai / activeloopai/deeplake

[FEATURE] Accessing dataset index as if it's a dictionary

Open
#319 0 comments 1 reaction 0 assignees View on GitHub
enhancement feature-discussion
Dominant language
C++
Stars
9.2k
Forks
722
PR merge metrics
No merged PRs in 30d

Description

## 🚨🚨 Feature Request

- [ ] A new implementation

### Is your feature request related to a problem?

Instead of accessing elements in a dataset by index, sometimes users prefer to provide a key instead of an index.

### If your feature will improve `HUB`

Improves user experience for accessing datasets with a key instead of an index. The drawback is that the user would miss chunked access and this will inherently add an inefficiency.

### Description of the possible solution

A key could be a tensor inside the dataset, which will be loaded to the RAM and map key -> index. Then the user can use a special API to query the key from the dataset.

**Teachability, Documentation, Adoption, Migration Strategy**
here is a proposal that conflicts with nested tensor access, but provides a clear explanation.
```python
schema = {
"image": Image(shape=(None, None, 3), max_shape=(1920, 1920, 3), dtype="uint8"),
"id": Text(max_shape=(15,)),
}

ds = Dataset(tag, mode="w+", schema=my_schema, shape=(100,), primary_key="id")
ds["id", 0] = "sometext"
assert ds["image", 0] == ds["image", "sometext"]
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.