Pythonはどうやって感知器の論理回路を実現しますか?
神経ネットワーク入門回顧(感知器、多層センサー)には、察知器と多層感知器に関する理論が整理されています。ここでは、与門、与非門、または異門に関するコードが実現されています。
また、pytestフレームワークを使ってテストします。
一つの感知器を通して、与門、与非門、或いは門を実現することができます。
先にテストコードtest_を書きます。perception.py:
これら3つのゲートの重みとバイアスは、人間の直感または図面に基づいて得られ、一意ではない。以下は簡単な実現です。perception.pyに下記を書きます。
上の図に示すように、異種またはゲートは線形ではないので、多層感知器の構造が必要です。
二層の感知器を使用して、異種ドアを実現することができます。
test_を修正するperception.pyファイルに、異種ドアのテストコードを追加します。
コマンドを実行 pytest-v テストに成功しました。
リンク:https://www.cnblogs.com/noluye/p/11465389.html
ライセンス契約:知識共有署名-非商業的使用4.0国際許諾協議
以上はPythonがどうやって感知器の論理回路の詳細を実現しますか?python感知器の論理回路に関する資料について、他の関連記事に注目してください。
また、pytestフレームワークを使ってテストします。
pip install pytest
与門、与非門、または門一つの感知器を通して、与門、与非門、或いは門を実現することができます。
先にテストコードtest_を書きます。perception.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 コードをテストできます。これら3つのゲートの重みとバイアスは、人間の直感または図面に基づいて得られ、一意ではない。以下は簡単な実現です。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 ============================================================================
異形の門上の図に示すように、異種またはゲートは線形ではないので、多層感知器の構造が必要です。
二層の感知器を使用して、異種ドアを実現することができます。
test_を修正するperception.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感知器の論理回路に関する資料について、他の関連記事に注目してください。