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.2rc0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

kmeans_gpu-0.0.2rc0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file kmeans_gpu-0.0.2rc0.tar.gz.

File metadata

  • Download URL: kmeans_gpu-0.0.2rc0.tar.gz
  • Upload date:
  • Size: 4.7 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.2rc0.tar.gz
Algorithm Hash digest
SHA256 5f0708a245425cd74c63a680c083ff90e32ae9fc59c9bb540ac1ab90f0c2eb35
MD5 d4b60075a3dc76e2c924ccf4154ca04a
BLAKE2b-256 55db5f0f3dc2841488e01a5808e16ef01f2a4437b7316802718cfd6789741861

See more details on using hashes here.

File details

Details for the file kmeans_gpu-0.0.2rc0-py3-none-any.whl.

File metadata

  • Download URL: kmeans_gpu-0.0.2rc0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 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.2rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 551a4ff96a67490f12e9acd177a2833bc4118fa155c6f10d6cfbe20137e22704
MD5 77dc06b0297d34e21bbf21846edb2d75
BLAKE2b-256 4a428e08db478eae073d42244a3ec25dde0f21ac59f8a61c0faa3575714c0ce8

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