当前位置: 首页 > news >正文

我想注册网站我怎么做班级优化大师的利和弊

我想注册网站我怎么做,班级优化大师的利和弊,wordpress响应 延时,涿鹿镇做网站BP算法就是反向传播,要输入的数据经过一个前向传播会得到一个输出,但是由于权重的原因,所以其输出会和你想要的输出有差距,这个时候就需要进行反向传播,利用梯度下降,对所有的权重进行更新,这样…

BP算法就是反向传播,要输入的数据经过一个前向传播会得到一个输出,但是由于权重的原因,所以其输出会和你想要的输出有差距,这个时候就需要进行反向传播,利用梯度下降,对所有的权重进行更新,这样的话在进行前向传播就会发现其输出和你想要的输出越来越接近了。

# 
import numpy as np
from tqdm import tqdm
import matplotlib.pyplot as plt# 生成权重以及偏执项layers_dim代表每层的神经元个数,
#比如[2,3,1]代表一个三成的网络,输入为2层,中间为3层输出为1层
def init_parameters(layers_dim):L = len(layers_dim)parameters ={}for i in range(1,L):parameters["w"+str(i)] = np.random.random([layers_dim[i],layers_dim[i-1]])parameters["b"+str(i)] = np.zeros((layers_dim[i],1))return parametersdef sigmoid(z):return 1.0/(1.0+np.exp(-z))# sigmoid的导函数
def sigmoid_prime(z):return sigmoid(z) * (1-sigmoid(z))# 前向传播,需要用到一个输入x以及所有的权重以及偏执项,都在parameters这个字典里面存储
# 最后返回会返回一个caches里面包含的 是各层的a和z,a[layers]就是最终的输出
def forward(x,parameters):a = []z = []caches = {}a.append(x)z.append(x)layers = len(parameters)//2# 前面都要用sigmoidfor i in range(1,layers):z_temp =parameters["w"+str(i)].dot(x) + parameters["b"+str(i)]z.append(z_temp)a.append(sigmoid(z_temp))# 最后一层不用sigmoidz_temp = parameters["w"+str(layers)].dot(a[layers-1]) + parameters["b"+str(layers)]z.append(z_temp)a.append(z_temp)caches["z"] = zcaches["a"] = a    return  caches,a[layers]# 反向传播,parameters里面存储的是所有的各层的权重以及偏执,caches里面存储各层的a和z
# al是经过反向传播后最后一层的输出,y代表真实值
# 返回的grades代表着误差对所有的w以及b的导数
def backward(parameters,caches,al,y):layers = len(parameters)//2grades = {}m = y.shape[1]# 假设最后一层不经历激活函数# 就是按照上面的图片中的公式写的grades["dz"+str(layers)] = al - ygrades["dw"+str(layers)] = grades["dz"+str(layers)].dot(caches["a"][layers-1].T) /mgrades["db"+str(layers)] = np.sum(grades["dz"+str(layers)],axis = 1,keepdims = True) /m# 前面全部都是sigmoid激活for i in reversed(range(1,layers)):grades["dz"+str(i)] = parameters["w"+str(i+1)].T.dot(grades["dz"+str(i+1)]) * sigmoid_prime(caches["z"][i])grades["dw"+str(i)] = grades["dz"+str(i)].dot(caches["a"][i-1].T)/mgrades["db"+str(i)] = np.sum(grades["dz"+str(i)],axis = 1,keepdims = True) /mreturn grades   # 就是把其所有的权重以及偏执都更新一下
def update_grades(parameters,grades,learning_rate):layers = len(parameters)//2for i in range(1,layers+1):parameters["w"+str(i)] -= learning_rate * grades["dw"+str(i)]parameters["b"+str(i)] -= learning_rate * grades["db"+str(i)]return parameters
# 计算误差值
def compute_loss(al,y):return np.mean(np.square(al-y))# 加载数据
def load_data():"""加载数据集"""x = np.arange(0.0,1.0,0.01)y =20* np.sin(2*np.pi*x)# 数据可视化plt.scatter(x,y)return x,y
#进行测试
x,y = load_data()
x = x.reshape(1,100)
y = y.reshape(1,100)
plt.scatter(x,y)
parameters = init_parameters([1,25,1])
al = 0
for i in range(4000):caches,al = forward(x, parameters)grades = backward(parameters, caches, al, y)parameters = update_grades(parameters, grades, learning_rate= 0.3)if i %100 ==0:print(compute_loss(al, y))
plt.scatter(x,al)
plt.show()

运行结果:

在这里插入图片描述

http://www.zhongyajixie.com/news/22820.html

相关文章:

  • 有利于优化的网站模板怎么做神马搜索排名seo
  • wordpress 无法搜索结果重庆seo网站建设
  • 韩国食品网站设计欣赏seo服务是什么意思
  • 成都网站制作公司有哪些百度福州分公司
  • 杭州企业网站制作哪个好广告公司联系方式
  • 北京网站建设的价格天百度网盘网页版官网
  • 如何申请公司名称注册武汉网站设计十年乐云seo
  • 佛山新网站制作代理商头条收录提交入口
  • 苏州相城区做网站公司中小企业网络营销现状
  • 自己电脑怎么做网站服务器吗旺道seo推广系统怎么收费
  • 做美女网站流量seo推广营销靠谱
  • 新闻网站怎么做缓存哈尔滨优化调整人员流动管理
  • 免费flash网站模板带后台平台推广网站
  • 门户网站开发 南宁关于软文营销的案例
  • 做徽标的网站app推广员好做吗
  • 设计公司企业价值观重庆seo排名收费
  • 买域名可以自己做网站吗长沙谷歌seo
  • 网站设计制作培训进一步优化落实
  • 做网站有哪个软件好seo精华网站
  • seo网站优化优化排名建网站建设
  • 网站开发java语言广告投放公司
  • 海口高端品牌网站建设百度网址大全在哪里找
  • 参考消息今天新闻常州seo第一人
  • 襄樊网站制作公司宁德seo培训
  • 辽宁省建设注册中心网站安卓系统优化app
  • 做招聘网站客户要发票怎么办手机版百度入口
  • 公司网站开发软件百度搜索引擎收录
  • 档案网站建设比较分析十堰seo排名公司
  • 湖北网站建设报价龙华网站建设
  • 中国设计网app百度seo培训班