Python 은 어떻게 감지 기의 논리 회 로 를 실현 합 니까?
또한,우 리 는 pytest 프레임 워 크 를 사용 하여 테스트 를 진행 합 니 다.
pip install pytest
불문한 층 의 감지 기 를 통 해 문,비 문,또는 문 을 실현 할 수 있다.
테스트 코드 먼저 쓰기 testperception.py:
from perception import and_operate, nand_operate, or_operate
def test_and_operate():
"""
:return:
"""
assert and_operate(1, 1) == 1
assert and_operate(1, 0) == 0
assert and_operate(0, 1) == 0
assert and_operate(0, 0) == 0
def test_nand_operate():
"""
:return:
"""
assert nand_operate(1, 1) == 0
assert nand_operate(1, 0) == 1
assert nand_operate(0, 1) == 1
assert nand_operate(0, 0) == 1
def test_or_operate():
"""
:return:
"""
assert or_operate(1, 1) == 1
assert or_operate(1, 0) == 1
assert or_operate(0, 1) == 1
assert or_operate(0, 0) == 0
테스트 코드 를 쓰 고 나 면 명령 을 직접 입력 합 니 다. pytest -v 코드 를 테스트 할 수 있 습 니 다.이 세 개의 문의 가중치 와 편향 은 사람의 직관 이나 그림 에 따라 얻 은 것 이지 유일한 것 이 아니다.다음은 간단 한 실현 입 니 다.perception.py 에 적 으 십시오.
import numpy as np
def step_function(x):
"""
:param x:
:return:
"""
if x <= 0:
return 0
else:
return 1
def and_operate(x1, x2):
"""
:param x1:
:param x2:
:return:
"""
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.7
return step_function(np.sum(w * x) + b)
def nand_operate(x1, x2):
"""
:param x1:
:param x2:
:return:
"""
x = np.array([x1, x2])
w = np.array([-0.5, -0.5])
b = 0.7
return step_function(np.sum(w * x) + b)
def or_operate(x1, x2):
"""
:param x1:
:param x2:
:return:
"""
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.3
return step_function(np.sum(w * x) + b)
운행 하 다. pytest -v 테스트 통과 확인.
========================================================================== test session starts ===========================================================================
platform darwin -- Python 3.6.8, pytest-5.1.2, py-1.8.0, pluggy-0.12.0 -- /Users/mac/.virtualenvs/work/bin/python3
...
collected 3 items
test_perception.py::test_and_operate PASSED [ 33%]
test_perception.py::test_nand_operate PASSED [ 66%]
test_perception.py::test_or_operate PASSED [100%]
=========================================================================== 3 passed in 0.51s ============================================================================
이문위의 그림 에서 보 듯 이 이 또는 문 은 선형 으로 나 눌 수 있 는 것 이 아니 기 때문에 다 층 감지 기의 구조 가 필요 하 다.
2 층 감지 기 를 사용 하면 이상 또는 문 을 실현 할 수 있다.
수정 testperception.py 파일,다른 문 을 추가 하 는 테스트 코드:
from perception import and_operate, nand_operate, or_operate, xor_operate
그리고
def test_xor_operate():
"""
:return:
"""
assert xor_operate(1, 1) == 0
assert xor_operate(1, 0) == 1
assert xor_operate(0, 1) == 1
assert xor_operate(0, 0) == 0
perception.py 파일 에 이문 함 수 를 추가 합 니 다:
def xor_operate(x1, x2):
"""
:param x1:
:param x2:
:return:
"""
s1 = nand_operate(x1, x2)
s2 = or_operate(x1, x2)
return and_operate(s1, s2)
우 리 는 비 문과 또는 문의 선형 조합 을 통 해 이 또는 문 을 실현 했다.실행 명령 pytest -v 테스트 성공.
========================================================================== test session starts ===========================================================================
platform darwin -- Python 3.6.8, pytest-5.1.2, py-1.8.0, pluggy-0.12.0 -- /Users/mac/.virtualenvs/work/bin/python3
...
collected 4 items
test_perception.py::test_and_operate PASSED [ 25%]
test_perception.py::test_nand_operate PASSED [ 50%]
test_perception.py::test_or_operate PASSED [ 75%]
test_perception.py::test_xor_operate PASSED [100%]
=========================================================================== 4 passed in 0.60s ============================================================================
미스터 비링크:https://www.cnblogs.com/noluye/p/11465389.html
허가 협의:지식 공유 서명-비상 업적 사용 4.0 국제 허가 협의
이상 은 Python 이 감지 기의 논리 회 로 를 어떻게 실현 하 는 지 에 대한 상세 한 내용 입 니 다.python 감지 기의 논리 회로 에 관 한 자 료 는 다른 관련 글 에 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.