首页 > 编程知识 正文

pytorch矩阵广播,策略梯度pytorch代码解读

时间:2023-05-05 08:49:08 阅读:170608 作者:802

教程视频:梯度下降算法

学习目标:实现梯度下降算法(GD )和随机梯度下降算法(SGD ),输出关于Epoch的loss图像。

一、坡度下降算法(GD )代码如下(例) :

#--coding:utf-8--* -“'=====================-===========================================================================================3.0 ) y _ data=[ 2.0,4.0, 6.0]#定义权重Ww=1.0#定义前馈计算y_hat=x*wdefforward(x ) : return x*w#定义成本函数定义ys ) : y 2 )计算出各组数据的损失值cost=(y_pred-y ) ) y_pred求平均值#梯度defgradient(xs,ys ) : grad=0 for x,yinzip ) xs, ys ) :grad=2*x* ) x*w-y ) #计算#costreturngrad/leeturngrad求平均值epoch_list=[] #保存epochCost_list=[] # 4、Forward(4) (forepochinrange ) 100 ) :cost_val=cost(x_data, 开始训练y_data )的第一步骤:首先计算当前步骤的损失值(cost ) grad_的y_data(#步骤2 :梯度) w-=0.01 ) grad_ )用于调整Epoch cost_val(#生成输出)输出的格式的print(epoch: ),epoch,) w={:3f} ).format ) w ), ' loss={ :3 f } '.format (cost _ val ) (epoch_list.append ) epoch ) cost _ list.append (cost _ val ) PLT CT

Loss图像:

二、随机梯度下降算法(SGD )代码实现:

#--coding:utf-8--* -“'=====================-===========================================================================================函数是y=2xx _ data=[ 1.0,2.0,3.0 ] y _ data=[ 2.0,4.0, 6.0]#定义权重Ww=1.0#定义前馈计算y_hat=x*wdefforward(x ) 330 ) y ) :y_pred=Forward(x ) )随机抽取一个样本在该样本的梯度下执行梯度下降return(y_pred-y ) *2),而不是所有样本的梯度,并计算该样本的y_hat=(y_pred-y ) y ) : return2* 2 #保存每个epoch的成本打印) (“打印”) )保存forward(4) ) #开始forepochinrange(100 ) : for x,yinzip ) y_data )开始培训y ) )的tgrad: ',x,y,grad_val(L=loss(x, y ) epoch_list.append ) epoch ) Cost_list.append(l ) l是用于调整输出的格式的prrad 'w={:3f}'.format(w,w ) cost_list(PLT.ylabel ) loss ) PLT.xlabel ) Epoch ) PLT.grid ) ls='--网格plt.show ) print ) ) PPPoch

Loss图像:

*注: **此代码是为学生编写的,不一定准确。 如果有错误的话,请在评论区指出来。 谢谢你。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。