planning.py shows how to use this graph with graph_search.
graph_sparsification.py shows how to sparsify a graph
batch_sparsification.py efficiently sparsify a graph with as a batch
incremental_api.py shows how to extend with sparsity
Usage
To instantiate a graph:
graph = AsymMesh(n=10_000, k=6, dim=2, img_dim=[2], kernel_fn=l2, embed_fn=id2D, d_max=20)
graph.extend(xys, images=xys, meta=xys)
graph.update_zs()
graph.update_edges()
Most of the time it is better to enforce sparsity of the graph by only adding new vertices when there is no existing vertex that is close-by. The new dedupe API allows us to do this in a batch fashion:
spots = graph.dedupe(images=xys, r_min=r_min)
xys = xys[spots]
ds = graph.to_goal(zs_2=xys)
if ds.size == 0:
graph.extend(xys, images=xys, meta=xys)
else:
m = ds.min(axis=-1) >= r_min
if m.sum() > 0:
graph.extend(xys[m], images=xys[m], meta=xys[m])
graph.update_edges()
Dense |
Sparse |
Details |
|---|---|---|
10x more edges in the dense graph in comparison to the sparse graph. |
To Experiment
Import this module in the method module.
Metadata
Release files for sparse-graphs 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sparse_graphs-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / sparse_graphs-0.0.2-py3-none-any.whl
| Download URL | sparse_graphs-0.0.2-py3-none-any.whl |
|---|---|
| Size | 10.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
393a7e96e7f40491ea1aab651bdcd372bcdaca9ebc48bef594068ff7adaa08ee
|
|
BLAKE2b-256 checksum How to use checksums |
f9b851d35cf1c9b883c1be43559cd41cf36c0bbe13bb8b9443f056a7d335f712
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.8
|