BP网络数字识别

这篇博客介绍如何利用sklearn库构建并训练一个BP神经网络,用于识别0到9的数字。首先,导入所需包,然后定义训练函数和神经网络类,包括初始化和训练、预测方法。接着,加载数据并进行训练,最终展示不断提高的准确率。
摘要由CSDN通过智能技术生成

我们使用sklearn库来进行训练,识别数字0~9。

1.导入包

import numpy as np
from sklearn.datasets import load_digits		#数据集
from sklearn.preprocessing import LabelBinarizer		#标签二值化
from sklearn.cross_validation import train_test_split		#切分数据 把数据分为测试数据和训练数据

2.定义训练函数

def sigmoid(x):
	return 1/(1+np.exp(-x))
	
def dsigmoid(x):
	return x*(1-x)

3.定义神经网络的类

在这里,自己定义一个类表示神经网络

class NeuralNetwork:

 初始化:将输入层作为初始化参数,如(64,100,10)为输入64个神经元,隐藏层100个,输出10个

	def __init__(self,layers):	
		#权值初始化,范围-1,1   输入层隐藏层+1代表偏置值
		self.V = np.random.random((layers[0]+1,layers[1]+1))*2-1
		self.W = np.random.random((layers[1]+1,layers[2]))*2-1

训练函数:X  为训练的数据 y标签 epochs迭代次数</

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值