def w_sum(a, b): # 定义了一个运算函数
assert (len(a) == len(b)) # len()是 Python 的内置函数之一,它返回对象的长度。
# 当a和b长度一样的时,返回值为Ture
# Python的assert是用来检查一个条件,如果它为真,就不做任何事。如果它为假,则会抛出AssertError并且包含错误信息。
output = 0 # 赋值output的初始值为0
for i in range(len(a)): # for循环函数,自0开始便利全部函数
output += (a[i] * b[i]) # output = a[1]*b[1]+a[2]*b[3]+……+a[i]*b[i]
return output
def vect_mat_mul(vect, matrix):
assert (len(vect) == len(matrix))
output = [0, 0, 0]
for i in range(len(vect)):
output[i] = w_sum(vect, matrix[i])
return output
weights = [[0.1, 0.1, -0.3], # 权重,可以理解为第一个权重因子,也就是第一个输出的预测结果
[0.1, 0.2, 0.0], # 权重,可以理解为第2个权重因子,也就是第2个输出的预测结果
[0.0, 1.3, 0.1]] # 权重,可以理解为第3个权重因子,也就是第3个输出的预测结果
# 定义了一个网络函数的权重
def neural_network(input, weights): # input是样本输入
pred = vect_mat_mul(input, weights) # 预测函数,调用运算函数
return pred # 返回预测结果
a1 = [8.5, 9.5, 10, 9] # 样本1,输入样本
a2 = [0.65, 0.8, 0.8, 0.9] # 样本2
a3 = [1.2, 1.3, 0.5, 1.0] # 样本3
input = [a1[0], a2[0], a3[0]]
pred = neural_network(input, weights)
print(pred)
for j in range(len(a1)):
input = [a1[j], a2[j], a3[j]] # 将函数的第一个作为样板输入
pred = neural_network(input, weights) # 调用预测函数进行预测
print("第", j, "次预测的结果是:", pred)
#第一次是a1[0]*weights[0][0]+a2[0]*weights[0][1]+a3[0]*weights[0][2]
输出结果为
[0.555, 0.9800000000000001, 0.9650000000000001]
第 0 次预测的结果是: [0.555, 0.9800000000000001, 0.9650000000000001]
第 1 次预测的结果是: [0.64, 1.11, 1.17]
第 2 次预测的结果是: [0.93, 1.1600000000000001, 1.09]
第 3 次预测的结果是: [0.69, 1.08, 1.2700000000000002]
进程已结束,退出代码0