如何理解Python中的pyTorch权重衰减与L2范数正则化
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"如何理解Python中的pyTorch权重衰减与L2范数正则化",在日常操作中,相信很多人在如何理解Python中的pyTorch权重衰减与L2范数正则化问题上存在疑惑,小编查阅了各
千家信息网最后更新 2026年11月02日如何理解Python中的pyTorch权重衰减与L2范数正则化
这篇文章主要介绍"如何理解Python中的pyTorch权重衰减与L2范数正则化",在日常操作中,相信很多人在如何理解Python中的pyTorch权重衰减与L2范数正则化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何理解Python中的pyTorch权重衰减与L2范数正则化"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
下面进行一个高维线性实验
假设我们的真实方程是:

假设feature数200,训练样本和测试样本各20个
模拟数据集
num_train,num_test = 10,10num_features = 200true_w = torch.ones((num_features,1),dtype=torch.float32) * 0.01true_b = torch.tensor(0.5)samples = torch.normal(0,1,(num_train+num_test,num_features))noise = torch.normal(0,0.01,(num_train+num_test,1))labels = samples.matmul(true_w) + true_b + noisetrain_samples, train_labels= samples[:num_train],labels[:num_train]test_samples, test_labels = samples[num_train:],labels[num_train:]
定义带正则项的loss function
def loss_function(predict,label,w,lambd): loss = (predict - label) ** 2 loss = loss.mean() + lambd * (w**2).mean() return loss
画图的方法
def semilogy(x_val,y_val,x_label,y_label,x2_val,y2_val,legend): plt.figure(figsize=(3,3)) plt.xlabel(x_label) plt.ylabel(y_label) plt.semilogy(x_val,y_val) if x2_val and y2_val: plt.semilogy(x2_val,y2_val) plt.legend(legend) plt.show()
拟合和画图
def fit_and_plot(train_samples,train_labels,test_samples,test_labels,num_epoch,lambd): w = torch.normal(0,1,(train_samples.shape[-1],1),requires_grad=True) b = torch.tensor(0.,requires_grad=True) optimizer = torch.optim.Adam([w,b],lr=0.05) train_loss = [] test_loss = [] for epoch in range(num_epoch): predict = train_samples.matmul(w) + b epoch_train_loss = loss_function(predict,train_labels,w,lambd) optimizer.zero_grad() epoch_train_loss.backward() optimizer.step() test_predict = test_sapmles.matmul(w) + b epoch_test_loss = loss_function(test_predict,test_labels,w,lambd) train_loss.append(epoch_train_loss.item()) test_loss.append(epoch_test_loss.item()) semilogy(range(1,num_epoch+1),train_loss,'epoch','loss',range(1,num_epoch+1),test_loss,['train','test'])
可以发现加了正则项的模型,在测试集上的loss确实下降了
到此,关于"如何理解Python中的pyTorch权重衰减与L2范数正则化"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
正则
权重
学习
方法
更多
样本
帮助
测试
实用
接下来
数据
文章
方程
模型
理论
知识
篇文章
线性
网站
资料
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
什么是科技互联网
中国互联网科技工作委员会毛军
A股互联网金融科技公司
互联网科技资迅
期待互联网科技
安徽鑫晟辉互联网科技
广州善班互联网科技
郑州华宇互联网科技
互联网科技咨询
人人互联网科技是培训
重庆科技学院互联网
联恩商钥互联网科技有限公司
科技互联网的估值
移动互联网科技股
阿里互联网科技企业
卓翼科技产业互联网合作
长沙互联网科技
深圳互联网科技的发展
上海万顺科技互联网有限公司招聘
广东猫王互联网科技有限公司电话
互联网科技企业
科技信息互联网
无线互联网科技
广州凡科互联网科技
蓝色互联网科技
深圳国际航运科技和互联网
千方科技属于互联网企业吗
互联网科技公司营业执照怎么办理
元气玛特互联网科技公司是外包吗
河南商务圈互联网科技有限公司