Python神经网络代码详细介绍

更新时间:2023-06-23 22:07:44 阅读: 评论:0

Python神经⽹络代码详细介绍
import numpy
import scipy.special #想要使⽤S函数,必须导⼊这个包
#完整的神经⽹络代码
class neuralNetwork:
def __init__(lf,inputnodes,hiddennodes,outputnodes,learningrate):
myday
#初始化神经⽹络
currently unknown lf.inodes=inputnodes
#输⼊层节点数
lf.hnodes=hiddennodes
#隐藏层节点数
多少钱英文
#输出层节点数⽬
#创建两个链接权重矩阵
#正太分布的中⼼设定为0.0,使⽤下⼀层节点数的开⽅作为标准⽅差来初始化权重,即pow(lf.hnodes,-0.5),最后⼀个参数是numpy数组的形状⼤⼩
lf.wih=al(0.0,pow(lf.hnodes,-0.5),(lf.hnodes,lf.inodes))
lf.who=al(0.0,des,-0.5),(lf.onodes,lf.hnodes))
韶子#或者可以选择简单⼀点的创建链接权重矩阵的⽅法
#lf.wih=(numpy.random.rand(lf.hnodes,lf.inodes)-0.5)
#lf.who=(numpy.random.des,lf.hnodes)-0.5)
#减去0.5得到-0.5—0.5之间的权重
lf.lr=learningrate
#学习率
lf.activation_function=lambda x:pit(x)intelligence是什么意思
#使⽤lambda来创建函数,这个函数接受了x,返回pit(x),这就是S函数(激活函数)
#使⽤lambda创建的函数是没有名字的,⼀般称其为匿名函数,这⾥给它分配了⼀个名字activation_function(),因此,当想要使⽤S函数时,调⽤这个函数即可        pass
def train(lf,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奥斯卡获奖金曲
excellency
#将targets_list变成numpy数组(维度为2),也即是矩阵
hidden_inputs=numpy.dot(lf.wih,inputs)
hidden_output=lf.activation_function(hidden_inputs)
final_inputs=numpy.dot(lf.who,hidden_output)
final_outputs=lf.activation_function(final_inputs)
#以上部分与query()部分使⽤完全相同的⽅式从输⼊层前馈信号到最终输出层
output_errors=targets-final_outputs
#输出层输出误差为预期⽬标输出值与实际计算得到的输出值的差
依靠的意思hidden_errors=numpy.dot(lf.who.T,output_errors)
#计算隐藏层节点反向传播的误差:隐藏层与输出层之间链接权重的转置点乘输出层输出误差,为隐藏层输出误差
mba案例分析
#对于在隐藏层和输出层之间的权重,我们使⽤output_errors进⾏优化。
#对于输⼊层和隐藏层之间的权重,我们使⽤计算得到的hidden_errors进⾏优化
lf.who+=lf.lr*numpy.dot((output_errors*finial_outputs*(1.0-finial_outputs)),anspo(hidden_outputs))
lf.wih+=lf.lr*numpy.dot((hidden_errors*hidden_outputs*(1.0-hidden_outputs)),anspo(inputs))
#利⽤更新权重的公式进⾏计算,得到新的权重
pass
def query(lf,inputs_list):
#查询⽹络,计算输出
inputs=numpy.array(inputs_list,ndmin=2).T
华师大二附中国际部
#将inputs_list变成numpy数组(维度为2),也即是矩阵
hidden_inputs=numpy.dot(lf.wih,inputs)
#输⼊层与隐藏层链接权重矩阵点乘输⼊矩阵,得到隐藏层的输⼊矩阵
hidden_outputs=lf.activation_function(hidden_inputs)
#调⽤S函数,得到隐藏层的输出
final_inputs=numpy.dot(lf.who,hidden_outputs)
#隐藏层与输出层的链接权重点乘隐藏层的输出矩阵,得到输⼊层的输⼊矩阵        final_outputs=lf.activation_function(final_inputs)
#调⽤S函数,得到输出层的输出
return final_outputs
#返回输出的输出矩阵

本文发布于:2023-06-23 22:07:44,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/155316.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:输出   隐藏   函数   矩阵   得到
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图