Skip to main content

KMeans-GPU: A PyTorch Module for KMeans.

Project description

kmeans-gpu

kmeans-gpu with pytorch (batch version). It is faster than sklearn.cluster.KMeans.

You can easily use KMeans as a nn.Module, and embed into your network structure.

Install

  1. From Git:
git clone git@github.com:densechen/kmeans-gpu.git
cd kmeans-gpu
pip install -r requirements.txt
python setup.py install

# check installation
python -c "import kmeans_gpu; print(kmeans_gpu.__version__)"
  1. From PyPI:
pip install kmeans-gpu

# check installation
python -c "import kmeans_gpu; print(kmeans_gpu.__version__)"

Demo

from kmeans_gpu import KMeans
import torch

# Config
batch_size = 128
feature_dim = 1024
pts_dim = 3
num_pts = 256
num_cluster = 15

# Create data
features = torch.randn(batch_size, feature_dim, num_pts)
# Pay attention to the different dimension order between features and points.
points = torch.randn(batch_size, num_pts, pts_dim)

# Create KMeans Module
kmeans = KMeans(
    n_clusters=num_cluster,
    max_iter=100,
    tolerance=1e-4,
    distance='euclidean',
    sub_sampling=None,
    max_neighbors=15,
)

# Forward
centroids, features = kmeans(points, features)

print(centroids.shape, features.shape)
# output: 
# >>> torch.Size([128, 15, 3]) torch.Size([128, 1024, 15])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kmeans_gpu-0.0.3.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

kmeans_gpu-0.0.3-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file kmeans_gpu-0.0.3.tar.gz.

File metadata

  • Download URL: kmeans_gpu-0.0.3.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.10

File hashes

Hashes for kmeans_gpu-0.0.3.tar.gz
Algorithm Hash digest
SHA256 3f2907e08cb293894fbd1247c1b2b128d2b1ee89fe8bb003d0309d4a1f6c1e1b
MD5 7c033d0ff9e77962ea4bfe622fe8d2a6
BLAKE2b-256 a47d331f0970cb84bc6c5c512bf29146d8f40fd9797687a90fb1e5688d9eb05b

See more details on using hashes here.

File details

Details for the file kmeans_gpu-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: kmeans_gpu-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.10

File hashes

Hashes for kmeans_gpu-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 97caab123013fc95f50451b2ac404d739f3c8d8c2b47669591706bf84a786248
MD5 43a69f7e5fbca7c1bae6eb407d6aaf5a
BLAKE2b-256 56187ab5abbb88359776328e045efd3ef23a3f27250207996182c365da34e1bd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page