1.需要先导入numpy模块

eb8c3b5306ca4a1da4a904ed521c79ab.png

2.定义非线性转化函数,由于还需要用到给函数的导数形式,因此一起定义

f7f23f1ea8324fadbda84db69c494a2b.png#这里是两个激活函数,tanh和logistic;以及求导后的函数

 3.设计BP神经网络的形式(几层,每层多少单元个数),用到了面向对象,主要是选择哪种非线性函数,以及初始化权重。layers是一个list,里面包含每一层的单元个数。

f9a8d560188647548ad25519f9fd2d8c.png

 4.实现算法:

e84428bfde6948fab9b1241fde33cc79.png

 5.实现预测

0809bf8836cf4e048cc87b724d67f67e.png

 

 6.我们给出一组数进行预测,我们上面的程序文件保存名称为BP:

 472d96df5b54452dae426929aeac05a5.png

 7.结果如下:

aa5394823eb64fb59f4f7cf9da50c6c5.png

 

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐