티스토리 뷰

torch

XOR gate

데이터조이 2023. 1. 15. 00:26

1. AND 게이트

def AND_gate(x1, x2):
    w1=0.5
    w2=0.5
    b=-0.7
    result = x1*w1 + x2*w2 + b
    if result <= 0:
        return 0
    else:
        return 1

2. NAND 게이트

def NAND_gate(x1, x2):
    w1=-0.5
    w2=-0.5
    b=0.7
    result = x1*w1 + x2*w2 + b
    if result <= 0:
        return 0
    else:
        return 1

3. OR 게이트


def OR_gate(x1, x2):
    w1=0.6
    w2=0.6
    b=-0.5
    result = x1*w1 + x2*w2 + b
    if result <= 0:
        return 0
    else:
        return 1

4. XOR 게이트

입력값 두 개가 서로 다른 값을 갖고 있을때에만 출력값이 1이 되고, 입력값 두 개가 서로 같은 값을 가지면 출력값이 0이 되는 게이트

NAND 조건을 이용해 두 개의 입력값이 1인 경우에는 출력 값이 0, 나머지 경우에는 모두 출력 값이 1이 나오게 함.

OR 조건을 이용해 두 개의 입력이 모두 0인 경우에는 출력 값이 0, 나머지 경우에는 모두 출력 값이 1이 나오게 함.

위 두 조건을 동시에 만족하는 (모두 1인) 경우만 1이 나오게 함.

def XOR_gate(x1, x2):
  w1 = 0.6
  w2 = 0.6
  b = 0.5
  if NAND_gate(x1, x2) and OR_gate(x1, x2):
    return 1
  else:
    return 0
print (NAND_gate(0, 0), NAND_gate(0, 1), NAND_gate(1, 0), NAND_gate(1, 1))
print (OR_gate(0, 0), OR_gate(0, 1), OR_gate(1, 0), OR_gate(1, 1))
print (XOR_gate(0, 0), XOR_gate(0, 1), XOR_gate(1, 0), XOR_gate(1, 1))
댓글
Total
Today
Yesterday
공지사항
최근에 올라온 글
글 보관함