| | ---
|
| | license: mit
|
| | tags:
|
| | - pytorch
|
| | - safetensors
|
| | - threshold-logic
|
| | - neuromorphic
|
| | ---
|
| |
|
| | # threshold-2outof3
|
| |
|
| | At least 2 of 3 inputs high. Equivalent to 3-input majority function.
|
| |
|
| | ## Function
|
| |
|
| | 2outof3(a, b, c) = 1 if (a + b + c) >= 2, else 0
|
| |
|
| | Equivalently: MAJORITY(a, b, c)
|
| |
|
| | ## Truth Table
|
| |
|
| | | a | b | c | sum | out |
|
| | |---|---|---|-----|-----|
|
| | | 0 | 0 | 0 | 0 | 0 |
|
| | | 0 | 0 | 1 | 1 | 0 |
|
| | | 0 | 1 | 0 | 1 | 0 |
|
| | | 0 | 1 | 1 | 2 | 1 |
|
| | | 1 | 0 | 0 | 1 | 0 |
|
| | | 1 | 0 | 1 | 2 | 1 |
|
| | | 1 | 1 | 0 | 2 | 1 |
|
| | | 1 | 1 | 1 | 3 | 1 |
|
| |
|
| | ## Architecture
|
| |
|
| | Single neuron: weights [1, 1, 1], bias -2
|
| |
|
| | Fires when: a + b + c - 2 >= 0, i.e., sum >= 2
|
| |
|
| | ## Parameters
|
| |
|
| | | | |
|
| | |---|---|
|
| | | Inputs | 3 |
|
| | | Outputs | 1 |
|
| | | Neurons | 1 |
|
| | | Layers | 1 |
|
| | | Parameters | 4 |
|
| | | Magnitude | 5 |
|
| |
|
| | ## Usage
|
| |
|
| | ```python
|
| | from safetensors.torch import load_file
|
| | import torch
|
| |
|
| | w = load_file('model.safetensors')
|
| |
|
| | def atleast2of3(a, b, c):
|
| | inp = torch.tensor([float(a), float(b), float(c)])
|
| | return int((inp @ w['neuron.weight'].T + w['neuron.bias'] >= 0).item())
|
| |
|
| | print(atleast2of3(0, 1, 0)) # 0 (sum=1)
|
| | print(atleast2of3(0, 1, 1)) # 1 (sum=2)
|
| | ```
|
| |
|
| | ## License
|
| |
|
| | MIT
|
| |
|