- 7
- 0
- 约2.71千字
- 约 2页
- 2023-06-06 发布于上海
- 举报
Python神经⽹络代码详细介绍
import numpy
import scipy.special #想要使⽤S函数,必须导⼊这个包
#完整的神经⽹络代码
class neuralNetwork:
def __init__(self,inputnodes,hiddennodes,outputnodes,learningrate):
#初始化神经⽹络
self.inodes=inputnodes
#输⼊层节点数
self.hnodes=hiddennodes
#隐藏层节点数
self.onodes=outputnodes
#输出层节点数⽬
#创建两个链接权重矩阵
#正太分布的中⼼设定为0.0,使⽤下⼀层节点数的开⽅作为标准⽅差来初始化权重,即pow(self.hnodes,-0.5),最后⼀个参数是numpy数组的形状⼤⼩
self.wih=numpy.random.normal(0.0,pow(self.hnodes,-0.5),(self.hnodes,self.inodes))
self.who=numpy.random.normal(0.0,pow(self.onodes,-0.5),(self.onodes,self.hnodes))
#或者可以选择简单⼀点的创建链接权重矩阵的⽅法
#self.wih=(numpy.random.rand(self.hnodes,self.inodes)-0.5)
#self.who=(numpy.random.rand(self.onodes,self.hnodes)-0.5)
#减去0.5得到-0.5—0.5之间的权重
self.lr=learningrate
#学习率
self.activation_function=lambda x:scipy.special.expit(x)
#使⽤lambda来创建函数,这个函数接受了x ,返回scipy.special.expit(x),这就是S函数(激活函数)
#使⽤lambda创建的函数是没有名字的,⼀般称其为匿名函数,这⾥给它分配了⼀个名字activation_function(),因此,当想要使⽤S函数时,调⽤这个函数即可
pass
def train(self,inputs_list,targets_list):#target_list⽬标值
#训练⽹络,反向传播误差
#训练⽹络分两个部分:针对给定的训练样本输出,这与query()函数上所做内容没什么区别;将计算得到的输出与所需输出对⽐,使⽤差值来指导⽹络权重的更新
inputs=numpy.array(inputs_list,ndmin=2).T
#将输⼊的列表转换为矩阵并且转置,数组的维度是2(2维数组表⽰矩阵)
target=numpy.array(targets_list,ndmin=2).T
#将targets_list变成numpy数组(维度为2),也即是矩阵
hidden_inputs=numpy.dot(self.wih,inputs)
hidden_output=self.activation_function(hidden_inputs)
final_inputs=numpy.dot(self.who,hidden_output)
final_outputs=self.activation_function(final_inputs)
# 以上部分与query()部分使⽤完全相同的⽅式从输⼊层前馈信号到最终输出层
output_errors=targets-final_outputs
#输出层输出误差为预期⽬标输出值与实际计算得到的输出值的差
hidden_errors=numpy.dot(self.who.T,output_errors)
#计算隐藏层节点反向传播的误差:隐藏层与输出层之间链接权重的转置点乘输出层输出误差,为隐藏层输出误差
#对于在隐藏层和输出层之间的权重,我们使⽤output_errors进⾏优化。
#对于输⼊层和隐藏层之间的权重,我们使⽤计算得到的hidden_errors进⾏优化
self.who+=self.lr*numpy.dot((output_errors*finia
您可能关注的文档
- 工作总结的种类,特点和内容6141.pdf
- [南开大学]20秋学期(2021年)《形象管理(尔雅)》在线作业答卷.pdf
- 【人教版】六年级上册数学试题-小学奥数思维训练题全国通用库赛前冲刺1000题(三十).pdf
- 【最全】usedtodo,beusedtodoing用法辨析及练习(带答案).pdf
- POLO2011.6.20-维护说明书整书.pdf
- [东北师范大学]《基础会计学》19秋在线作业1答案.pdf
- 《马克思主义基本原理》考纲9第八章共产主义社会是人类最崇高的社会理想.pdf
- 三年级上册语文阅读专练--第11课《一块奶酪》人教统编版含答案.pdf
- 【推荐】经典品牌营销案例分析-范文模板(3页).pdf
- 三年级下册认识分数说课稿.pdf
- 计量规程规范 JJF 2362-2026测量设备校准间隔的确定导则.pdf
- 《JJF 2362-2026测量设备校准间隔的确定导则》.pdf
- JJF 2362-2026测量设备校准间隔的确定导则.pdf
- JJF 2373-2026测量不确定度在法制计量符合性评定中的应用.pdf
- GB/T 27997-2026造船门式起重机.pdf
- 计量规程规范 JJF 2373-2026测量不确定度在法制计量符合性评定中的应用.pdf
- 《JJF 2373-2026测量不确定度在法制计量符合性评定中的应用》.pdf
- 中国国家标准 GB/T 27997-2026造船门式起重机.pdf
- 《GB/T 27997-2026造船门式起重机》.pdf
- GB/T 31487.2-2025直流融冰装置 第2部分:换流器.pdf
原创力文档

文档评论(0)