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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: kmeans_gpu-0.0.1rc0.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.1rc0.tar.gz
Algorithm Hash digest
SHA256 9473af30ec3182a582175f872fadb0f46b1a03614874703b5f9934a6e872f4cc
MD5 73c7df2a07053461f3915cfe53f6c93a
BLAKE2b-256 3831dc5b21198869fdb88dcaabbfb0397ad60905682391aa3f0a91ec4fd59d64

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kmeans_gpu-0.0.1rc0-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.1rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9378fa4bf48fd46dac0e0e75d66b8307d61f318d3701c953387c2bf44907efa
MD5 0bb0b4ed0099818b0d2ea0246f1f9048
BLAKE2b-256 df78a997259dd65b0df1434be48d1945b207311da25844f450759cd0693f2545

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