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

深圳网站设计九曲网站建设科技创新小发明

深圳网站设计九曲网站建设,科技创新小发明,wordpress标签静态,网站建设的收费本文目标#xff1a; 以这个公式为例#xff0c;设计一个算法#xff0c;用梯度下降法来模拟训练过程#xff0c;最终得出参数a,b,c 原理介绍 目标函数#xff1a; 损失函数#xff1a;#xff0c;就是mse 损失函数展开#xff1a; 损失函数对a,b,c求导数: 导数就是梯度… 本文目标 以这个公式为例设计一个算法用梯度下降法来模拟训练过程最终得出参数a,b,c 原理介绍 目标函数 损失函数就是mse 损失函数展开 损失函数对a,b,c求导数: 导数就是梯度也就是目标参数与当前参数的差异,这个差异需要用梯度下降法更新           重复上面的过程参数就可以更新了然后可以看看新参数的效果,也就是损失有没有降低 具体流程 预设模型的表达式为也就是二次函数。同时随机初始化模型参数a,b,c。如果是其他函数如就无法在本版本适用修改求导方式后才可用。即本模型需要提前知道模型的表达式。通过不断喂入(x_input,y_true),得出.而y_out与y_true之间具有差异。将差异封装成一个loss函数并分别对a,b,c进行求导。得到a,b,c的梯度将和原始的参数a,b,c和学习率作为输入用梯度下降法来对a,b,c参数进行更新.重复2,3,4过程。直到训练结束或者loss降低到较小值 python实现   # 初始化a,b,c为-11/6 , -395/3,-2400  目标a,b,c为2,-4,3 class QuadraticFunc():def drew(self,w,nameshow):a,b,c wx1 np.array(range(-80,80))y1 a*x1*x1 b*x1 cy2 2*x1*x1 - 4*x1 3plt.clf()plt.plot(x1, y1)plt.plot(x1, y2)plt.scatter(x1, y1, cr)# set colorplt.xlim((-50,50))plt.ylim((-500,500))plt.xlabel(X Axis)plt.ylabel(Y Axis)if name first:plt.pause(3)else:plt.pause(0.01)plt.ioff()#计算lossdef cal_loss(self,y_out,y_true):# return np.dot((y_out - y_true),(y_out - y_true)) * 0.5return np.mean((y_out - y_true)**2)#计算梯度 def cal_grad(self,x,y_out,y_true):# x(batch),y_out(batch),y_true(batch)a_grad (y_out-y_true)*x**2 #b_grad (y_out-y_true)*xc_grad (y_out-y_true)return np.array([np.mean(a_grad),np.mean(b_grad),np.mean(c_grad)]) #梯度下降法更新参数def update_theta(self,step,w,grad):new_w w - step*gradreturn new_wdef run(self):feed_x np.array(range(-400,400))/400feed_y 2*feed_x*feed_x - 4*feed_x 3step 0.5base_lr 0.5lr base_lr# 初始化参数a,b,c -11/6 , -395/3,-2400#-1,10,26w np.array([a,b,c])self.drew(w,first)epochs 100for epoch in range(epochs):# 每隔10轮 降低一半的学习率lr base_lr/(2**(int((epoch1)/10)))for i in range(len(feed_x)):x_input feed_x[i]y_true feed_y[i]y_out w[0]*x_input*x_input w[1]*x_input w[2]#计算lossloss self.cal_loss(y_out,y_true)#计算梯度grad self.cal_grad(x_input,y_out,y_true)#更新参数,梯度下降w self.update_theta(lr,w,grad)# self.drew(w)grad np.round(grad,2)loss np.round(loss,2)w np.round(w,2)print(train times is:,epoch, grad is:,grad, loss is:,%.4f%loss, w is:,w,\n)self.drew(w)if loss1e-5:print(train finish:,w)breakdef run_batch(self):feed_x np.array(range(-400,400))/400feed_y 2*feed_x*feed_x - 4*feed_x 3x_y [[feed_x[i],feed_y[i]] for i in range(len(feed_x))]base_lr 0.5lr base_lr# 初始化参数a,b,c -11/6 , -395/3,-2400#-1,10,26w np.array([a,b,c])self.drew(w,first)batch_size 16data_len len(x_y)//batch_sizeepochs 100for epoch in range(epochs):random.shuffle(x_y)# 每隔10轮 降低一半的学习率lr base_lr/(2**(int((epoch1)/10)))print(epoch,lr:,epoch,lr)for i in range(data_len):x_y_list x_y[i*batch_size:(i1)*batch_size]x_y_np np.array(x_y_list)x_input x_y_np[:,0]y_true x_y_np[:,1]y_out w[0]*x_input*x_input w[1]*x_input w[2]#计算lossloss self.cal_loss(y_out,y_true)#计算梯度grad self.cal_grad(x_input,y_out,y_true)#更新参数,梯度下降w self.update_theta(lr,w,grad)grad np.round(grad,2)loss np.round(loss,2)w np.round(w,2)print(train times is:,epoch, grad is:,grad, loss is:,%.4f%loss, w is:,w,\n)self.drew(w)if loss1e-5:print(train finish:,w)# breaktime.sleep(0.1)if __name__ __main__:qf QuadraticFunc()qf.run()
http://www.dnsts.com.cn/news/187128.html

相关文章:

  • 汕头网站设计价格网站建设私活
  • 南京专门做网站会员播放系统插件wordpress
  • 接单子做网站德州网站建设公司
  • 淄博网站制作优化科技网站制作公司
  • 怎样清理网站后门西宁网站建设王道下拉惠
  • 软件网站开发团队名称网站开发培训实训
  • 乐清建网站公司哪家好电商网站建设行情
  • 英语网站新增两个栏目wordpress伪静
  • 做门户网站广告沈阳网站优化排名
  • 网站建设推广价格手机百度如何发布作品
  • 35互联网站建设怎么样关于wap网站模板下载
  • 智能自助建站系统源码成都住建官网app
  • 网站做百度推广有没有效果网站需要服务器吗?
  • 苍南县规划建设局网站公司信息管理系统
  • 广州骏域网站建设专家手机电脑版被窝家装公司
  • 莞城网站仿做网站建设费用表格
  • 做网站前台需要什么软件怎样建立自己的公众号
  • 保定聊城网站建设标题正文型网站
  • 网站建设设计公司类网站织梦模板 带手机端电商网站运营流程
  • 重庆网站建设开发建设集团是做什么的
  • 晋州市建设局网站河南建网站
  • 网站后台用什么做外贸营销推广方案
  • 旅游网站建设和实现wordpress 帕兰映像 安装教程 wordpress
  • 网站建设的税收分类编码网站建设 业务走下坡
  • 网站备案协议书wordpress主题替换不彻底
  • 成都游戏网站建设建设企业网银u盾网站打不开
  • 功能性的网站设计制作铜陵做网站的
  • 不拦截网站的浏览器wordpress 分享微信
  • 潍坊网站建设培训网站源码模块
  • 微信小程序制作免费轻站平台新闻标题做的好的网站