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}')