threshold-mod12 / README.md
phanerozoic's picture
Rename from tiny-mod12-verified
fa53b57 verified
metadata
license: mit
tags:
  - pytorch
  - safetensors
  - threshold-logic
  - neuromorphic
  - modular-arithmetic

threshold-mod12

Trivial case: computes Hamming weight mod 12 for 8-bit inputs. Since max HW is 8 < 12, this is just HW.

Circuit

  xβ‚€ x₁ xβ‚‚ x₃ xβ‚„ xβ‚… x₆ x₇
   β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚
   β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚
   w: 1  1  1  1  1  1  1  1
   β””β”€β”€β”΄β”€β”€β”΄β”€β”€β”΄β”€β”€β”Όβ”€β”€β”΄β”€β”€β”΄β”€β”€β”΄β”€β”€β”˜
               β–Ό
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚ b:  0   β”‚
          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
               β–Ό
       HW (= HW mod 12)

Why Trivial?

For mod m where m > (number of inputs), no reset ever occurs:

  • 8 inputs β†’ max HW = 8
  • 8 mod 12 = 8 (no wraparound)

Parameters

Weights [1, 1, 1, 1, 1, 1, 1, 1]
Bias 0
Total 9 parameters

Usage

from safetensors.torch import load_file
import torch

w = load_file('model.safetensors')

def mod12(bits):  # Actually just HW
    inputs = torch.tensor([float(b) for b in bits])
    return int((inputs * w['weight']).sum() + w['bias'])

Files

threshold-mod12/
β”œβ”€β”€ model.safetensors
β”œβ”€β”€ model.py
β”œβ”€β”€ config.json
└── README.md

License

MIT