faissknn


Namefaissknn JSON
Version 0.0.1 PyPI version JSON
download
home_pagehttps://github.com/isaaccorley/faissknn
SummaryFaiss implementation of multiclass and multilabel K-Nearest Neighbors Classifiers
upload_time2023-05-22 23:34:04
maintainer
docs_urlNone
authorIsaac Corley
requires_python<4,>=3.9
license
keywords pytorch machine learning deep learning
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # FAISSKNN
`faissknn` contains implementations for both multiclass and multilabel K-Nearest Neighbors Classifier implementations. The classifiers follow the `scikit-learn`: `fit`, `predict`, and `predict_proba` methods.

### Install

The FAISS authors recommend to install `faiss` through conda e.g. `conda install -c pytorch faiss-gpu`. See [FAISS install page](https://github.com/facebookresearch/faiss/blob/main/INSTALL.md) for more info.

Once `faiss` is installed, `faissknn` can be install through pypi:

```
pip install faissknn
```

### Usage

Multiclass:

```python
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

from faissknn import FaissKNNClassifier

x, y = make_classification()
x_train, x_test, y_train, y_test = train_test_split(x, y)
model = FaissKNNClassifier(
    n_neighbors=5,
    n_classes=None,
    device="cpu"
)
model.fit(x_train, y_train)

y_pred = model.predict(x_test) # (N,)
y_proba = model.predict_proba(x_test) # (N, C)
```

Multilabel:

```python
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

from faissknn import FaissKNNMultilabelClassifier

x, y = make_multilabel_classification()
x_train, x_test, y_train, y_test = train_test_split(x, y)
model = FaissKNNClassifier(
    n_neighbors=5,
    device="cpu"
)
model.fit(x_train, y_train)

y_pred = model.predict(x_test) # (N, C)
y_proba = model.predict_proba(x_test) # (N, C)
```

GPU/CUDA: `faissknn` also supports running on the GPU to speed up computation. Simply change the device to `cuda` or a specific cuda device `cuda:0`

```python
model = FaissKNNClassifier(
    n_neighbors=5,
    device="cuda"
)
model = FaissKNNClassifier(
    n_neighbors=5,
    device="cuda:0"
)
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/isaaccorley/faissknn",
    "name": "faissknn",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "<4,>=3.9",
    "maintainer_email": "",
    "keywords": "pytorch,machine learning,deep learning",
    "author": "Isaac Corley",
    "author_email": "isaac.corley@my.utsa.edu",
    "download_url": "https://files.pythonhosted.org/packages/72/e0/5b2fd177311d93d259db16dc9b6d7afe32e1b45dd61a3f812c0bfd099530/faissknn-0.0.1.tar.gz",
    "platform": null,
    "description": "# FAISSKNN\n`faissknn` contains implementations for both multiclass and multilabel K-Nearest Neighbors Classifier implementations. The classifiers follow the `scikit-learn`: `fit`, `predict`, and `predict_proba` methods.\n\n### Install\n\nThe FAISS authors recommend to install `faiss` through conda e.g. `conda install -c pytorch faiss-gpu`. See [FAISS install page](https://github.com/facebookresearch/faiss/blob/main/INSTALL.md) for more info.\n\nOnce `faiss` is installed, `faissknn` can be install through pypi:\n\n```\npip install faissknn\n```\n\n### Usage\n\nMulticlass:\n\n```python\nfrom sklearn.datasets import make_classification\nfrom sklearn.model_selection import train_test_split\n\nfrom faissknn import FaissKNNClassifier\n\nx, y = make_classification()\nx_train, x_test, y_train, y_test = train_test_split(x, y)\nmodel = FaissKNNClassifier(\n    n_neighbors=5,\n    n_classes=None,\n    device=\"cpu\"\n)\nmodel.fit(x_train, y_train)\n\ny_pred = model.predict(x_test) # (N,)\ny_proba = model.predict_proba(x_test) # (N, C)\n```\n\nMultilabel:\n\n```python\nfrom sklearn.datasets import make_classification\nfrom sklearn.model_selection import train_test_split\n\nfrom faissknn import FaissKNNMultilabelClassifier\n\nx, y = make_multilabel_classification()\nx_train, x_test, y_train, y_test = train_test_split(x, y)\nmodel = FaissKNNClassifier(\n    n_neighbors=5,\n    device=\"cpu\"\n)\nmodel.fit(x_train, y_train)\n\ny_pred = model.predict(x_test) # (N, C)\ny_proba = model.predict_proba(x_test) # (N, C)\n```\n\nGPU/CUDA: `faissknn` also supports running on the GPU to speed up computation. Simply change the device to `cuda` or a specific cuda device `cuda:0`\n\n```python\nmodel = FaissKNNClassifier(\n    n_neighbors=5,\n    device=\"cuda\"\n)\nmodel = FaissKNNClassifier(\n    n_neighbors=5,\n    device=\"cuda:0\"\n)\n```\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Faiss implementation of multiclass and multilabel K-Nearest Neighbors Classifiers",
    "version": "0.0.1",
    "project_urls": {
        "Homepage": "https://github.com/isaaccorley/faissknn"
    },
    "split_keywords": [
        "pytorch",
        "machine learning",
        "deep learning"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "07433aa0fa6cef39134a51fa947dff793ee49402707bbdca0190e9ac728d4b02",
                "md5": "dd657e2d765a66434b34c5dc581ab432",
                "sha256": "e0ffd8aa5a33074d9d98f3cb7eaa6c3732d73bb9986c17ced93a17b157dd0303"
            },
            "downloads": -1,
            "filename": "faissknn-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dd657e2d765a66434b34c5dc581ab432",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.9",
            "size": 4516,
            "upload_time": "2023-05-22T23:34:03",
            "upload_time_iso_8601": "2023-05-22T23:34:03.137849Z",
            "url": "https://files.pythonhosted.org/packages/07/43/3aa0fa6cef39134a51fa947dff793ee49402707bbdca0190e9ac728d4b02/faissknn-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "72e05b2fd177311d93d259db16dc9b6d7afe32e1b45dd61a3f812c0bfd099530",
                "md5": "fa5b208f2932c4920345acd0b4608ba7",
                "sha256": "d81a34949681c88a4bbce712102078ed8115b8402ca19966116a1a9ea81a2e87"
            },
            "downloads": -1,
            "filename": "faissknn-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "fa5b208f2932c4920345acd0b4608ba7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.9",
            "size": 5000,
            "upload_time": "2023-05-22T23:34:04",
            "upload_time_iso_8601": "2023-05-22T23:34:04.954216Z",
            "url": "https://files.pythonhosted.org/packages/72/e0/5b2fd177311d93d259db16dc9b6d7afe32e1b45dd61a3f812c0bfd099530/faissknn-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-22 23:34:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "isaaccorley",
    "github_project": "faissknn",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "faissknn"
}
        
Elapsed time: 0.06992s