Skip to main content

No project description provided

Project description

Percentron-rs

A basic implementation of the Perceptron algorithm, implemented using Rust, for Python.

Usage

Install the Perceptron-rs package, then import it under the name perceptron as follows:

from perceptron import Perceptron

dimensions = 2
samples = [([1,1], -1), ([-1, 1], +1), ([1, -1], -1), ([-1, -1], +1)]

p = Perceptron(dimensions, samples)
p.train(iterations=10)

Have a look at example.py for an in-situ example.

Training Data format

Training data has to be provided in annotated sets. The data exists as a list, and each element is a tuple. Data, then the label. The data is a list of numbers (with the same dimension as you initialized the Perceptron with), and the label is either a 1 or -1. E.g.:

data = [
    ([1, 0, 0], -1),
    ([0, 1, 0],  1),
    ([0, 0, 1], -1),
]

Methods available

p.add_samples(data)

Appends samples to the currently stored set. Make sure they follow the data format described above.

p.clear_samples()

Removes all samples already stored. (If some training has occurred, this will finalize the training.)

p.replace_samples(samples)

Clears all existing samples and adds the provided samples. Make sure these follow the data format described above.

p.train(iterations, should_normalize=True)

Trains for number of iterations provided. Calling this method multiple times will train it in steps. Once training has started, you cannot change the samples any more. You can normalize the output, but this will finalize the model. It cannot be trained further after this.

Development

This package is developed using Maturin. There are other alternatives available. If you are in doubt, please reach out.

The steps are roughly as follows:

  1. Install Maturin
  2. Create a virtual environment for Python, and activate it.
  3. Run maturin develop to automatically build and install the package.
  4. Start Python (perceptron will be available for import).

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

perceptron_rust-0.1.0.tar.gz (7.7 kB view hashes)

Uploaded Source

Built Distributions

perceptron_rust-0.1.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl (430.0 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ x86-64

perceptron_rust-0.1.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl (450.9 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ i686

perceptron_rust-0.1.0-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl (529.0 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARMv7l

perceptron_rust-0.1.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl (446.1 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARM64

perceptron_rust-0.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (259.6 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

perceptron_rust-0.1.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (297.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

perceptron_rust-0.1.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (295.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

perceptron_rust-0.1.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (266.6 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

perceptron_rust-0.1.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl (271.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.5+ i686

perceptron_rust-0.1.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl (431.8 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ x86-64

perceptron_rust-0.1.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl (452.1 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ i686

perceptron_rust-0.1.0-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl (530.3 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARMv7l

perceptron_rust-0.1.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl (447.6 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARM64

perceptron_rust-0.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (260.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

perceptron_rust-0.1.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (298.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

perceptron_rust-0.1.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (297.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

perceptron_rust-0.1.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (267.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

perceptron_rust-0.1.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (269.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

perceptron_rust-0.1.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl (272.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.5+ i686

perceptron_rust-0.1.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl (432.3 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ x86-64

perceptron_rust-0.1.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl (452.4 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ i686

perceptron_rust-0.1.0-pp38-pypy38_pp73-musllinux_1_2_armv7l.whl (530.3 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARMv7l

perceptron_rust-0.1.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl (448.3 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARM64

perceptron_rust-0.1.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (299.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

perceptron_rust-0.1.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (297.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

perceptron_rust-0.1.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (267.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

perceptron_rust-0.1.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (269.6 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

perceptron_rust-0.1.0-cp312-none-win_amd64.whl (129.8 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

perceptron_rust-0.1.0-cp312-none-win32.whl (123.0 kB view hashes)

Uploaded CPython 3.12 Windows x86

perceptron_rust-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (428.9 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

perceptron_rust-0.1.0-cp312-cp312-musllinux_1_2_i686.whl (449.2 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

perceptron_rust-0.1.0-cp312-cp312-musllinux_1_2_armv7l.whl (527.2 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARMv7l

perceptron_rust-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl (445.5 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

perceptron_rust-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl (261.9 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.34+ x86-64

perceptron_rust-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.0 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

perceptron_rust-0.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (293.6 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

perceptron_rust-0.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (294.0 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

perceptron_rust-0.1.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (264.9 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

perceptron_rust-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (266.2 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

perceptron_rust-0.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (269.7 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.5+ i686

perceptron_rust-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (223.2 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

perceptron_rust-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl (226.3 kB view hashes)

Uploaded CPython 3.12 macOS 10.12+ x86-64

perceptron_rust-0.1.0-cp311-none-win_amd64.whl (130.7 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

perceptron_rust-0.1.0-cp311-none-win32.whl (123.4 kB view hashes)

Uploaded CPython 3.11 Windows x86

perceptron_rust-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (430.1 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

perceptron_rust-0.1.0-cp311-cp311-musllinux_1_2_i686.whl (449.9 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

perceptron_rust-0.1.0-cp311-cp311-musllinux_1_2_armv7l.whl (528.1 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARMv7l

perceptron_rust-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl (446.3 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

perceptron_rust-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.8 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

perceptron_rust-0.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (296.0 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

perceptron_rust-0.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (294.9 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

perceptron_rust-0.1.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (265.7 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

perceptron_rust-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (266.7 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

perceptron_rust-0.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (270.4 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.5+ i686

perceptron_rust-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (224.1 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

perceptron_rust-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl (226.8 kB view hashes)

Uploaded CPython 3.11 macOS 10.12+ x86-64

perceptron_rust-0.1.0-cp310-none-win_amd64.whl (130.5 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

perceptron_rust-0.1.0-cp310-none-win32.whl (123.3 kB view hashes)

Uploaded CPython 3.10 Windows x86

perceptron_rust-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl (430.0 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

perceptron_rust-0.1.0-cp310-cp310-musllinux_1_2_i686.whl (449.8 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

perceptron_rust-0.1.0-cp310-cp310-musllinux_1_2_armv7l.whl (528.1 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARMv7l

perceptron_rust-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl (446.3 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

perceptron_rust-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.7 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

perceptron_rust-0.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (296.4 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

perceptron_rust-0.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (294.9 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

perceptron_rust-0.1.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (265.6 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

perceptron_rust-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (266.7 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

perceptron_rust-0.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (270.2 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.5+ i686

perceptron_rust-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (224.1 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

perceptron_rust-0.1.0-cp39-none-win_amd64.whl (130.8 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

perceptron_rust-0.1.0-cp39-none-win32.whl (123.5 kB view hashes)

Uploaded CPython 3.9 Windows x86

perceptron_rust-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl (430.8 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

perceptron_rust-0.1.0-cp39-cp39-musllinux_1_2_i686.whl (450.2 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ i686

perceptron_rust-0.1.0-cp39-cp39-musllinux_1_2_armv7l.whl (528.7 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARMv7l

perceptron_rust-0.1.0-cp39-cp39-musllinux_1_2_aarch64.whl (447.1 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

perceptron_rust-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (259.9 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

perceptron_rust-0.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (297.1 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

perceptron_rust-0.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (295.6 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

perceptron_rust-0.1.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (266.1 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

perceptron_rust-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (267.8 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

perceptron_rust-0.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl (271.3 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.5+ i686

perceptron_rust-0.1.0-cp39-cp39-macosx_11_0_arm64.whl (225.2 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

perceptron_rust-0.1.0-cp38-none-win_amd64.whl (130.6 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

perceptron_rust-0.1.0-cp38-none-win32.whl (123.7 kB view hashes)

Uploaded CPython 3.8 Windows x86

perceptron_rust-0.1.0-cp38-cp38-musllinux_1_2_x86_64.whl (430.7 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

perceptron_rust-0.1.0-cp38-cp38-musllinux_1_2_i686.whl (450.4 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ i686

perceptron_rust-0.1.0-cp38-cp38-musllinux_1_2_armv7l.whl (528.4 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARMv7l

perceptron_rust-0.1.0-cp38-cp38-musllinux_1_2_aarch64.whl (446.9 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

perceptron_rust-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (259.8 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

perceptron_rust-0.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (296.7 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

perceptron_rust-0.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (295.5 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

perceptron_rust-0.1.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (265.9 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

perceptron_rust-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (268.1 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

perceptron_rust-0.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl (271.2 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.5+ i686

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