准备
先安装好python3及numpy、matplotlib库
示例代码:
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
print("你好,Hello!")
print('=============numpy============')
import numpy as np
x = np.array([1.1, 2.2, 3])
print(x)
print(type(x))
print('=============matplotlib========')
import matplotlib.pyplot as plt
x = np.arange(0, 6, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin')
plt.plot(x, y2, linestyle='--', label='cos')
plt.xlabel('x')
plt.ylabel('y')
plt.title('sin & cos')
plt.legend()
plt.show()
print('========from matplotlib.image import imread=======')
from matplotlib.image import imread
img = imread('C:/Users/admin/Pictures/DeepLearning/rice.png')
plt.imshow(img)
plt.show()
结果图片:
感知机
感知机接收多个输入信号,输出一个信号。这里所说的“信号”可以想象成电流或河流那样具备“流动性”的东西。像电流流过导线,向前方输送电子一样,感知机的信号也会形成流,向前方输送信息。但是,和实际的电流不同的是,感知机的信号只有“流 / 不流”(1/0)两种取值。在本书中,0 对应“不传递信号”,1 对应“传递信号”。
θ称为阈值,式(2.1)和式(2.2)虽然有一个符号不同,但表达的内容是完全相同的。此处,b称为偏置,w1,w2称为权重
或
>>> def OR(x1,x2):
... x = np.array([x1, x2])
... w = np.array([0.5, 0.5])
... b = -0.3
... tmp = np.sum(x*w) + b
... if tmp > 0:
... return 1
... else:
... return 0
与
>>> def AND(x1, x2):
... x = np.array([x1,x2])
... w = np.array([0.5,0.5])
... b = -0.7
... tmp = np.sum(x*w) + b
... if tmp > 0:
... return 1
... else:
... return 0
非
>>> def NAND(x1,x2):
... x = np.array([x1,x2])
... w = np.array([-0.5, -0.5])
... b = 0.7
... tmp = np.sum(x*w) + b
... if tmp > 0:
... return 1
... else:
... return 0
异或 = 非&或(多层感知机)
>>> def NOR(x1,x2):
... return AND(NAND(x1,x2), OR(x1,x2))
总结:
图片只能是png格式
感知机的局限性就在于它只能表示由一条直线分割的空间(线性空间),异或可用感知机“叠加”的方式表示(异或 = 非 & 或)
------End