Views
No views yet
a b
│ │
├───┬───┤
│ │ │
▼ │ ▼
┌──────┐│┌──────┐
│ OR │││ NAND │
└──────┘│└──────┘
│ │ │
└───┼───┘
▼ a b
┌──────┐ │ │
│ AND │ └─┬─┘
└──────┘ ▼
│ ┌──────┐
▼ │ AND │
sum └──────┘
│
▼
carry| a | b | sum | carry |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
| Output | Function | Neurons | Layers |
|---|---|---|---|
| sum | XOR(a, b) | 3 | 2 |
| carry | AND(a, b) | 1 | 1 |
1from safetensors.torch import load_file
2import torch
3
4w = load_file('model.safetensors')
5
6def half_adder(a, b):
7 inp = torch.tensor([float(a), float(b)])
8
9 # XOR for sum
10 or_out = int((inp @ w['xor.layer1.or.weight'] + w['xor.layer1.or.bias']).sum() >= 0)
11 nand_out = int((inp @ w['xor.layer1.nand.weight'] + w['xor.layer1.nand.bias']).sum() >= 0)
12 xor_inp = torch.tensor([float(or_out), float(nand_out)])
13 sum_out = int((xor_inp @ w['xor.layer2.weight'] + w['xor.layer2.bias']).sum() >= 0)
14
15 # AND for carry
16 carry_out = int((inp @ w['carry.weight'] + w['carry.bias']).sum() >= 0)
17
18 return sum_out, carry_outthreshold-halfadder/
├── model.safetensors
├── model.py
├── config.json
└── README.md