keras深度学习浅层网络 非线形分类示例

本文通过Keras构建浅层全链接网络,展示非线性分类。利用10000个二维特征的训练数据,模拟抛物线分界线,训练网络以达到分类目的。实验表明,即使网络简单,也能通过训练拟合复杂边界,如抛物线。增加测试数据可观察更细致的分类效果。
摘要由CSDN通过智能技术生成

首先随机生成10000个training数据X(x1, x2), x1, x2取值范围都为0-500随机数。

我们把x1, x2当作一个点(x, y) 的两个特征放在二维平面可以很直观看到training数据的分布。

然后取一个分界线,这里随便弄个抛物线:

A = 0.2
B = -20
C = 500
y = A * p_x1 ** 2 + B * p_x1 + C

如果training数据在这个抛物线的上方,我们显示为绿色1,在抛物线下方我们显示为蓝色0, 所以我们label Y 为0或者1.

相关代码:

p_x1 = np.random.rand(10000) * 500
p_x2 = np.random.rand(10000) * 500
p_x_trigger = A * p_x1 ** 2 + B * p_x1 + C

p_x = np.zeros((10000, 2))
p_x[:,0] = p_x1
p_x[:,1] = p_x2
p_y = (p_x2 > p_x_trigger)*1

我们随便组织几层浅层全链接网络来尝试训练:

model.add(Dense(2, activation='relu', input_shape=(2,)))
model.add(Dense(4, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(2, activation='softmax'))

只要保证输入和输出的大小为2, 因为我们的类型只有0和1

model.fit(p_x, p_y, batch_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值