一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python深度學習pyTorch權重衰減與L2范數正則化解析

Python深度學習pyTorch權重衰減與L2范數正則化解析

2022-01-18 16:01算法菜鳥飛高高 Python

這篇文章主要介紹了Python深度學習中的pyTorch權重衰減與L2范數正則化的詳細解析,文中附含詳細示例代碼,有需要的朋友可以借鑒參考下

Python深度學習pyTorch權重衰減與L2范數正則化解析

下面進行一個高維線性實驗

假設我們的真實方程是:

Python深度學習pyTorch權重衰減與L2范數正則化解析

假設feature數200,訓練樣本和測試樣本各20個

 

模擬數據集

num_train,num_test = 10,10
num_features = 200
true_w = torch.ones((num_features,1),dtype=torch.float32) * 0.01
true_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 + noise
train_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'])

Python深度學習pyTorch權重衰減與L2范數正則化解析
可以發現加了正則項的模型,在測試集上的loss確實下降了

以上就是Python深度學習pyTorch權重衰減與L2范數正則化解析的詳細內容,更多關于Python pyTorch權重與L2范數正則化的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/qq_43152622/article/details/116937183

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本高清视频一区二区 | narutomanga玖辛奈本子 | 色播影院性播影院私人影院 | 亚洲国产99在线精品一区二区 | 国产日韩欧美成人 | 日韩精品福利视频一区二区三区 | 精品视频 久久久 | 国产精品亚洲专区一区 | 小草视频免费观看在线 | 日韩精品一区二区三区毛片 | 日韩成人免费aa在线看 | nxgx欧美 | 国产精品久久久天天影视香蕉 | 日韩一级片在线播放 | 免费视频一区二区 | 动漫精品午夜在线播放 | 5x视频在线观看 | 99视频九九精品视频在线观看 | 免费高清www动漫视频播放器 | 边打电话边操 | 国产精品日韩欧美一区二区三区 | 高清麻生希在线 | 欧美日韩中文字幕在线视频 | 欧美在线一 | 久久视频在线视频 | 色综合天天综合中文网 | 日韩成人免费aa在线看 | 国产精品视频一区二区三区 | 九九在线精品视频 | 亚洲国产精品第一区二区三区 | 亚洲精品国偷拍自产在线观看蜜臀 | 日本成日本片人免费 | 亚洲AV福利天堂一区二区三 | a级免费在线观看 | 久久99re2热在线播放7 | 调教催眠改造np总攻 | 亚洲 日韩经典 中文字幕 | 亚洲免费在线观看 | 肉色欧美久久久久久久蜜桃 | 午夜欧美精品久久久久久久 | 2019理论韩国理论中文 |