Comments (3)
Hey @vincetrep ,
do u have a minimal reproducible code that we can use to debug?
from docarray.
I also cannot reproduce the issue, the following executes without problem:
from docarray.index.backends.weaviate import EmbeddedOptions
from docarray.index.backends.weaviate import WeaviateDocumentIndex
from typing import Optional
from docarray.typing import AnyEmbedding, NdArrayEmbedding
from pydantic import Field, parse_obj_as
from docarray import DocList, BaseDoc
import numpy as np
import torch
class SubDoc(BaseDoc):
embedding: Optional[AnyEmbedding] = Field(is_embedding=True, n_dim=128)
class MyDoc(BaseDoc):
text: str
subdocs: DocList[SubDoc]
dbconfig = WeaviateDocumentIndex.DBConfig(embedded_options=EmbeddedOptions())
doc_index = WeaviateDocumentIndex[MyDoc](db_config=dbconfig)
# creating tensors on GPU
gpu_tensors = [torch.rand(128).to('cuda:2') for i in range(3)]
assert all(t.is_cuda for t in gpu_tensors)
# storing them in DocList
data = DocList[MyDoc](
[
MyDoc(text='hello world', subdocs=[SubDoc(embedding=t)]) for t in gpu_tensors
]
)
# converting to NdArray on CPU
for doc in data:
doc.subdocs[0].embedding = parse_obj_as(NdArrayEmbedding, doc.subdocs[0].embedding)
assert isinstance(doc.subdocs[0].embedding, np.ndarray) # not on GPU
# insert into index
doc_index.index(data)
root_docs, sub_docs, scores = doc_index.find_subindex(np.random.rand(128), subindex='subdocs', limit=3)
print(scores)
from docarray.
`from docarray.index.backends.weaviate import WeaviateDocumentIndex
doc_index = WeaviateDocumentIndexMyDoc
from docarray.index.backends.weaviate import EmbeddedOptions
from docarray.index.backends.weaviate import WeaviateDocumentIndex
from typing import Optional
from docarray.typing import AnyEmbedding, NdArrayEmbedding
from pydantic import Field, parse_obj_as
from docarray import DocList, BaseDoc
import numpy as np
import torch
class SubDoc(BaseDoc):
embedding: Optional[AnyEmbedding] = Field(is_embedding=True, n_dim=128)
class MyDoc(BaseDoc):
text: str
subdocs: DocList[SubDoc]
dbconfig = WeaviateDocumentIndex.DBConfig(embedded_options=EmbeddedOptions())
doc_index = WeaviateDocumentIndexMyDoc
creating tensors on GPU
gpu_tensors = [torch.rand(128).to('cuda:2') for i in range(3)]
assert all(t.is_cuda for t in gpu_tensors)
storing them in DocList
data = DocList[MyDoc](
[
MyDoc(text='hello world', subdocs=[SubDoc(embedding=t)]) for t in gpu_tensors
]
)
converting to NdArray on CPU
for doc in data:
doc.subdocs[0].embedding = parse_obj_as(NdArrayEmbedding, doc.subdocs[0].embedding)
assert isinstance(doc.subdocs[0].embedding, np.ndarray) # not on GPU
insert into index
doc_index.index(data)
root_docs, sub_docs, scores = doc_index.find_subindex(np.random.rand(128), subindex='subdocs', limit=3)
print(scores)`
@JohannesMessner JohannesMessner
from docarray.
Related Issues (20)
- [pydantic v2] Push and pulling tests not passing with pydantic v2
- [pydantic v2] documentation test need to be trigger for pydantic v2
- Release Notes HOT 2
- Tensor not found in Tensorflow module HOT 4
- bug: deserializing from dataframe with numpy==1.26.1 HOT 15
- index.find() tries to reshape and fails HOT 10
- Integrate new Vector search library from Spotify HOT 3
- Release Notes HOT 4
- DocList raises exception for type object. HOT 3
- TorchTensor deepcopy raises error when dtype is not float32 HOT 8
- Support Epsilla as a document store HOT 3
- Error type hints in Python3.12 (#1147) HOT 2
- Release Note
- [Docs Missing] docs.docarray.org -> There isn't a GitHub Pages site here. HOT 1
- Enhancement to the weaviate datatypes support (text[], object, object[]) with WeaviateDocumentIndex HOT 6
- HnswDocumentIndex treats document IDs as string, they can be str, int, ID HOT 4
- Class-typed fields are required when inserting a new document HOT 3
- HNSWLib Indexer cannot knn query in subindex HOT 8
- Loading audio tensors fails: ValueError: all input arrays must have the same shape HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from docarray.