File size: 798 Bytes
b3b4605
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import torch
from safetensors.torch import load_file

def load_model(path='model.safetensors'):
    return load_file(path)

def carry_propagate(a, b, w):
    """Carry propagate signal: P = a XOR b."""
    inp = torch.tensor([float(a), float(b)])
    or_out = int((inp @ w['or.weight'].T + w['or.bias'] >= 0).item())
    nand_out = int((inp @ w['nand.weight'].T + w['nand.bias'] >= 0).item())
    l1 = torch.tensor([float(or_out), float(nand_out)])
    return int((l1 @ w['and.weight'].T + w['and.bias'] >= 0).item())

if __name__ == '__main__':
    w = load_model()
    print('Carry Propagate (P = a XOR b):')
    print('a b | P')
    print('----+--')
    for a in [0, 1]:
        for b in [0, 1]:
            p = carry_propagate(a, b, w)
            print(f'{a} {b} | {p}')