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. What's more, it is a differential operation which will back-propagate gradient to previous layers.

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.4.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

kmeans_gpu-0.0.4-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kmeans_gpu-0.0.4.tar.gz
  • Upload date:
  • Size: 5.1 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.4.tar.gz
Algorithm Hash digest
SHA256 c1e2e1ac2e1b468e95f7f6917bbd903edf85459b080c17d2ceb1a7690460aaad
MD5 cea34988e72e7319b0ca6bf91f2c9d33
BLAKE2b-256 fd6ccdf14b3e370a19e31fd8f3d41ae42167f0806a8ad9791318cc79d9dc133f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kmeans_gpu-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 6.2 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0ab063aafa6fe3dd417c09cf28fba4a98cd469c478303f4ecaca6fba7ae91294
MD5 1284d23d6020a7617ba25e2e0d304ed9
BLAKE2b-256 eff64b65e2eef06a6ac5cf71aecc5239e260a3a957a6c756407ac832a883e1d0

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