首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >单层感知器 一直不能出结果 请问哪里出了问题?

单层感知器 一直不能出结果 请问哪里出了问题?

提问于 2020-10-12 23:30:59
回答 0关注 0查看 96
一个简单二分类问题,这是数据点
一个简单二分类问题,这是数据点

代码如下

#单层感知器

import numpy as np

import matplotlib.pyplot as plt

#输入数据

X = np.array([[3.6, 6.6],

[9.3, 6.3],

[7.1, 8.1],

[4.0, 4.1],

[4.2, 4.2],

[2.8, 2.9],

[7.1, 7.3],

[9.2, 7.6],

[8.1, 7.8],

[2.9, 4.9],

[9.3, 8.2],

[4.2, 3.5]])

#标签

Y = np.array([1,-1,-1,1,1,-1,-1,-1,1,-1,1,1])

#权值初始化一行二列,取值范围-1到1

W = (np.random.random(2)-0.5)*2

#学习率设置

lr = 0.11

#计算迭代次数

n = 0

#神经网络输出

O=0

def update():

global X,Y,W,lr,n,O,E,W_C

n += 1

O = np.sign(np.dot(X,W.T))

E = Y - O.T

W_C = lr*(Y-O.T).dot(X)/int(X.shape[0]) #权值需要改变的值

W = W+W_C #修正权值

for _ in range(100):

update() #更新权值

print("W:",W) #打印权值

print("n",n) #打印迭代次数

O = np.sign(np.dot(X,W.T))#计算当前输出

print(E)

print(np.dot(X,W.T))

print(O.T)

print(W_C)

if(O==Y.T).all(): #如果实际输出等领域期望输出,模型收敛,循环结束

print("Finished")

print("epoch:",n)

break

结果是这样的
结果是这样的

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档