久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網運營的一線實戰(zhàn)洞察。

MAE、MSE、RMSE與L1/L2范數:PyTorch損失函數關系與選型

MAE、MSE、RMSE與L1/L2范數:PyTorch損失函數關系與選型 數值這塊的東西很多人都是在寫第一個回歸模型的時候才第一次撞上損失曲線畫出來忽高忽低換一個損失函數結果天差地別或者明明模型輸出看著挺正常反向傳回去的梯度卻大得離譜。這些問題往回追十有八九是沒搞清楚 MAE、MSE、RMSE 和 L1 范數、L2 范數這幾樣東西到底在算什么。標題里這五個概念看著像線性代數課本里的名詞實際在 PyTorch 里天天要用而且它們之間的關系比表面看起來緊密得多——MAE 就是 L1 范數在樣本維度上取平均MSE 和 L2 范數的平方只差一個常數因子RMSE 則是為了讓量綱回到原始單位而做的補救。搞清這套換算關系你在寫自定義損失、做多任務加權、調 weight_decay 的時候就不會憑感覺瞎猜了。這篇文章面向的是剛開始用 PyTorch 做回歸或者表示學習的人也適合已經寫過幾輪訓練但總覺得損失函數選得不夠踏實的同學。我會先把這幾個名詞的幾何含義和數學定義拆開講清楚再落到 PyTorch 的具體 API 上把torch.linalg.norm、nn.L1Loss、nn.MSELoss這些的用法和坑點一條條過一遍最后給一套可以直接跑的對比實驗代碼。我盡量不堆公式能用一句話說清的就不寫三行推導。1. 概念梳理范數、損失、誤差指標其實是同一套東西1.1 范數是給向量量長度的尺子范數這個詞聽著抽象說白了就是給一個向量算一個非負的長度。你手里有一串數想知道它整體有多大用不同的量法就得到不同的范數。最常見的是 L1 和 L2 兩種量法。L1 范數是把每個元素的絕對值加起來公式寫成 $|x|_1 \sum_i |x_i|$。它的直覺是曼哈頓距離——你在一座棋盤狀的城市里從 A 點到 B 點只能橫著走或豎著走走過的總距離就是 L1 范數。所有分量出的力是線性的不存在誰被放大。L2 范數則是把每個元素平方、求和、再開方寫成 $|x|_2 \sqrt{\sum_i x_i^2}$。這個就是中學里學的歐幾里得距離也就是直線距離。因為先平方再開方大分量會被顯著放大小分量會被壓得更小。這兩種范數在幾何上的差別很直觀。在二維平面上所有 L1 范數等于 1 的向量連起來是個菱形旋轉了 45 度的正方形四個頂點落在坐標軸上。而 L2 范數等于 1 的向量連起來是個圓。這個形狀差異不是純粹的數學趣味它直接決定了優(yōu)化時候解會落在哪——菱形的尖角在坐標軸上所以 L1 約束下的最優(yōu)解很容易正好讓某個分量變成 0這就是 L1 能產生稀疏解的幾何來源。圓沒有尖角L2 約束下的解通常所有分量都不為零只是整體被壓小。這個結論后面講正則化的時候還會用到。注意范數的定義里輸入是一個向量。但在深度學習中你面對的是形狀為 (N, D) 的張量這時候要先想清楚是沿著樣本維算還是沿著特征維算算錯了整個訓練的語義就變了。1.2 從范數到損失函數的映射關系損失函數和范數的關系其實是一次先做差、再套范數的組合。你有一個預測向量 $\hat{y}$ 和一個真實向量 $y$先算殘差 $r \hat{y} - y$然后對 $r$ 套上不同的范數就得到不同的誤差度量。把 L1 范數套在殘差上得到的是殘差的絕對值之和如果后面再除以樣本數 n就變成了平均絕對誤差 MAE。把 L2 范數平方套在殘差上得到的是殘差平方和除以 n 之后就是均方誤差 MSE。而 RMSE 是在 MSE 的基礎上再開個根號純粹是為了把量綱拉回到和原始數據一致。所以嚴格說范數是度量損失是把度量平均一下好讓它不隨樣本數變化誤差指標是把損失調整成一個人類能讀的量綱。三層是遞進關系不是并列關系。我在項目里見過不少人把torch.norm(x - y)直接當損失用然后發(fā)現 batch size 從 32 改成 128 之后損失數值翻了四倍學習率完全失效。這就是沒有做平均導致的——L1 范數會隨元素個數線性增長而 MAE 不會。這個細節(jié)看起來小實際調參的時候能省掉一整個下午的試錯。1.3 為什么工程上要同時保留這么多名字既然本質是一回事為什么還要搞出五個名字因為不同的名字服務于不同的使用場景。在數學推導和優(yōu)化理論里用 L1 范數、L2 范數這種叫法因為它可以不限于預測減真值這個語境任何向量都能套。在模型評估的報告里用 MAE、RMSE 這種叫法因為它們的量綱和原始數據一致你可以直接說這個模型平均錯了 3.2 攝氏度比說L1 范數是 320要清楚得多。而在 PyTorch 的損失模塊里用nn.L1Loss、nn.MSELoss這種命名是因為它們默認會做 reduction求平均符合訓練時最常用的形態(tài)。理解了這層關系你在寫論文、寫報告、寫代碼的時候就能自如切換不會出現損失函數是 L1 但指標報的是 RMSE這種前后對不上的尷尬。更重要的是你在自定義損失函數的時候知道自己在哪一層做手腳——是在范數層改比如換成 Huber還是在平均層改比如改成按樣本加權還是在開方層改比如改成 RMSLE。每一層改動對梯度的影響完全不同。2. 數學定義與公式拆解2.1 L1 范數與 L2 范數的嚴格定義對向量 $x \in \mathbb{R}^n$L1 范數的定義是$$|x|1 \sum{i1}^{n} |x_i|$$L2 范數的定義是$$|x|2 \sqrt{\sum{i1}^{n} x_i^2}$$兩個定義里唯一的差別就是先平方再開方還是直接取絕對值。但就是這點差別導致了兩者在可微性上的根本不同。L1 范數里每項是 $|x_i|$它在 $x_i 0$ 處不可導左導數是 -1右導數是 1只能定義次梯度。L2 范數在整個定義域上光滑可導除了原點原點處梯度為 0 而不是不可導這決定了用 L2 做損失時優(yōu)化器走得更穩(wěn)。還有一個容易被忽略的點L2 的平方 $|x|_2^2 \sum_i x_i^2$ 是完全光滑的二次函數處處可導且導數是 $2x_i$。所以在實際實現里MSE 損失幾乎不會去真的算范數再平方而是直接寫平方和省掉一次開方和一次平方的消解數值上也更穩(wěn)。2.2 MAE、MSE、RMSE 的定義與量綱分析假設有 n 個樣本預測值 $\hat{y}_i$真實值 $y_i$殘差 $r_i \hat{y}_i - y_i$那么名稱公式量綱對離群值的敏感度MAE$\frac{1}{n}\sum_i |r_i|$和 y 相同線性低MSE$\frac{1}{n}\sum_i r_i^2$y 的平方二次高RMSE$\sqrt{\frac{1}{n}\sum_i r_i^2}$和 y 相同二次高L1 范數$\sum_i |r_i|$和 y 相同線性低L2 范數$\sqrt{\sum_i r_i^2}$和 y 相同二次高量綱這一列是實操里最值得盯的。MSE 的量綱是原數據的平方如果你的目標值單位是米MSE 的單位就是平方米你沒法直接說平均誤差多少米。RMSE 開完根號之后量綱回到米所以它比 MSE 更適合寫進報告。但注意量綱一致不等于數值可以直接比較。RMSE 和 MAE 都是米卻在數值上差別很大——因為 RMSE 在連乘之前先平方大誤差被放大后才參與平均所以只要數據里存在幾個偏離較大的點RMSE 就會明顯高于 MAE。這個差值本身就是一個有用的診斷信號如果 RMSE 比 MAE 大很多說明模型在某些樣本上錯得很離譜而絕大部分樣本其實預測得還行。如果兩者很接近說明誤差分布比較均勻沒有極端的離群點。2.3 它們之間的換算關系這五個量之間有嚴格的換算記清楚了能做到心里有數不用每次都重新推。設 n 為元素個數r 為殘差向量。MAE 和 L1 范數的關系最直接$$\text{MAE} \frac{|r|_1}{n}$$MSE 和 L2 范數的平方的關系$$\text{MSE} \frac{|r|_2^2}{n}$$RMSE 和 L2 范數的關系$$\text{RMSE} \sqrt{\text{MSE}} \frac{|r|_2}{\sqrt{n}}$$這三個式子我在實際排查時經常用。比如你手頭只有損失值但報告里要寫 RMSE那就先確認損失是不是按 mean 歸約的然后sqrt(loss)就行如果損失是按 sum 歸約的有些框架默認行為不一樣就得先除以樣本數再開方。反過來如果你算出了 L2 范數想換算成 MSE就是norm**2 / n。這個 n 到底是樣本數還是全部元素數取決于你的張量最后一維是什么——回歸里輸出是標量的話兩者相同如果是多步預測那就得區(qū)分。提示n 的取值一定要和損失函數的 reduction 對齊。nn.MSELoss(reductionmean)對全部元素求平均如果輸入張量形狀是 (B, T, D)那分母就是 BTD不是 B。多步預測場景下這個坑非常常見。3. PyTorch 中的計算方式與 API 選擇3.1 torch.linalg.norm 與已棄用的 torch.normPyTorch 早期只有一個torch.norm這個函數在 1.9 之后逐漸被torch.linalg系列取代到 2.x 版本用torch.norm會直接給你一個 deprecation warning。原因在于老 API 對矩陣輸入的處理有歧義傳一個矩陣進去torch.norm默認算的是 Frobenius 范數也就是把所有元素平方求和開方但如果你指定p2它還可能被理解成譜范數。同名參數在不同形狀下語義不一致容易踩坑。新的torch.linalg把這個歧義拆開了分成兩個函數torch.linalg.vector_norm(input, ord, dim, keepdim, dtype)專門算向量范數輸入的最后若干維被當作向量來處理。torch.linalg.matrix_norm(input, ord, dim, keepdim, dtype)專門算矩陣范數比如 Frobenius、核范數、譜范數。而torch.linalg.norm是個通用入口會根據輸入維度和 ord 自動判斷該走哪條路。日常做回歸損失的時候用vector_norm就足夠了語義最清晰。import torch x torch.tensor([1.0, -2.0, 3.0, -4.0]) # L1 范數 l1 torch.linalg.vector_norm(x, ord1) # tensor(10.) # L2 范數 l2 torch.linalg.vector_norm(x, ord2) # tensor(5.4772) # 等價寫法L2 的平方 l2_sq torch.linalg.vector_norm(x, ord2) ** 2 # tensor(30.)注意ord2是默認值所以torch.linalg.vector_norm(x)得到的就是 L2 范數。而ord1拿到的才是 L1。如果你習慣了 NumPy 的np.linalg.norm(x, ord1)這套參數是通用的遷移過來不用改。3.2 nn.L1Loss / nn.MSELoss 與手寫實現的差異訓練的時候我更推薦用nn.L1Loss和nn.MSELoss這兩個模塊而不是手寫(pred - target).abs().mean()。原因有三個。第一是 reduction 參數更可控。nn.MSELoss默認reductionmean可以改成sum或none。改成none之后返回的是逐元素損失方便你自己做加權或者 mask比如在序列任務里把 padding 位置排除掉。手寫的時候要自己處理 mask容易出錯。第二是數值穩(wěn)定性。PyTorch 的 CUDA 實現里這些 loss 的前向和反向都是融合過的 kernel對半精度fp16和 bf16 有專門優(yōu)化。手寫的話中間張量數量變多顯存占用和耗時都會差一點混合精度下更容易溢出。第三是自動微分路徑更短。nn.MSELoss在反向傳播時可以直接算出梯度而手寫版本需要 autograd 走完 abs、pow、mean 三個階段圖更大。import torch import torch.nn as nn pred torch.tensor([2.5, 0.0, 2.1, 7.8]) target torch.tensor([3.0, -0.5, 2.0, 8.0]) mae_loss nn.L1Loss(reductionmean) mse_loss nn.MSELoss(reductionmean) print(mae_loss(pred, target)) # tensor(0.4250) print(mse_loss(pred, target)) # tensor(0.2875) print(torch.sqrt(mse_loss(pred, target))) # tensor(0.5362) 就是 RMSE # 手寫等價實現 print((pred - target).abs().mean()) # tensor(0.4250) print(((pred - target) ** 2).mean()) # tensor(0.2875)這里有個細節(jié)值得說nn.L1Loss在 PyTorch 2.0 之后支持reductionnone和reductionmean但如果你想做的是沿特征維算 L1 范數再沿樣本維平均那就不能直接用nn.L1Loss得手寫兩步。因為nn.L1Loss的 mean 是把所有元素一起平均的不會區(qū)分維度。3.3 dim 和 keepdim 參數到底影響什么張量形狀是 (B, D) 的時候torch.linalg.vector_norm(x, ord1, dim1)會把每一行當作一個向量算出 B 個標量返回形狀 (B,)。dim0則是把每一列當作向量返回形狀 (D,)。這個區(qū)別在 batch 訓練里至關重要。x torch.randn(4, 3) # 沿最后一維特征維算 L1 范數得到每個樣本的范數 per_sample torch.linalg.vector_norm(x, ord1, dim1) print(per_sample.shape) # torch.Size([4]) # 沿 batch 維算得到每個特征的范數 per_feature torch.linalg.vector_norm(x, ord1, dim0) print(per_feature.shape) # torch.Size([3]) # 加上 keepdim 保留被約減的那一維 per_sample_keep torch.linalg.vector_norm(x, ord1, dim1, keepdimTrue) print(per_sample_keep.shape) # torch.Size([4, 1])keepdimTrue在需要后續(xù)廣播的時候很有用。比如你想把每個樣本的范數當作權重再乘回原張量兩個形狀必須能廣播(B,) 和 (B, D) 是廣播不了的但 (B, 1) 和 (B, D) 可以。這個小技巧在寫歸一化層或者注意力掩碼的時候經常用到。還有一個容易忘的點dim可以傳負數。dim-1表示最后一維寫起來比記住具體維度號更安全尤其是張量形狀會隨代碼修改而變的時候。# 推薦寫法不依賴具體維度號 norms torch.linalg.vector_norm(x, ord2, dim-1, keepdimTrue) x_normalized x / (norms 1e-8)這里的1e-8是防止除零也是 L2 歸一化里幾乎必加的一個小常數。4. 梯度行為差異與選型決策4.1 L1 在零點附近的次梯度與稀疏性L1 損失的梯度是殘差的符號函數$\partial |r|/\partial r \text{sign}(r)$。這個梯度的特點是不管殘差是 0.01 還是 100梯度的大小都是 1在 PyTorch 里torch.sign(0)返回 0所以零點處梯度是 0。這帶來了兩個后果。好處是它對離群值不敏感。一個預測錯得離譜的樣本在 L1 下貢獻的梯度和一個錯得輕微的樣本一樣大不會把整個 batch 的梯度方向帶偏。壞處是它在接近最優(yōu)解的時候會來回震蕩因為梯度大小恒定沒法像 MSE 那樣隨著誤差減小而自然衰減到 0。所以用 MAE 訓練的時候通常需要配一個學習率衰減策略后期把步長降下來才能在最優(yōu)解附近穩(wěn)住。稀疏性是 L1 的另一個特性。如果你用 L1 懲罰網絡權重損失項是 $\lambda \sum_i |w_i|$對應的梯度是 $\lambda \cdot \text{sign}(w_i)$這個梯度會把權重往 0 的方向推且推的力度恒定。當權重已經很小的時候L2 正則的梯度 $2\lambda w_i$ 也趨近于 0 了推力消失權重會停在很小的非零值上而 L1 的推力還是 $\lambda$足夠把權重直接壓到 0。這就是 L1 能產生稀疏權重、L2 只能產生小權重的根本原因。4.2 MSE 對離群點的二次放大MSE 的梯度是 $2r/n$和殘差本身成正比。一個殘差是 10 的樣本梯度是殘差為 1 的樣本的 10 倍損失貢獻是 100 倍。這個平方關系在數據干凈的時候是好事收斂快、目標明確在數據有噪聲的時候就是災難模型會被少數幾個異常樣本牽著走。我做過一個對比實驗造了 1000 個服從 $y 2x 1 \epsilon$ 的樣本$\epsilon$ 是標準差 0.5 的高斯噪聲然后人為把其中 20 個樣本的 y 值加上 20。用同樣的網絡結構和學習率分別訓 200 輪結果差異很明顯損失函數干凈數據的測試 MAE含離群點數據的測試 MAE訓練穩(wěn)定性MSE0.381.67前 30 輪損失劇烈波動MAE0.410.45全程平穩(wěn)下降Smooth L1beta1.00.390.58前期波動小后期平穩(wěn)從表里能看出MSE 在含離群點的數據上測試誤差漲了 4 倍多而 MAE 幾乎沒受影響。Smooth L1 介于兩者之間因為它在殘差小于 beta 的時候用平方項保證小誤差下梯度平滑大于 beta 的時候用線性項避免大誤差被放大。實操心得如果你的數據里存在無法清洗的離群點第一選擇是 Huber/Smooth L1它對兩類誤差的優(yōu)點都保留了一部分。PyTorch 里對應nn.HuberLoss(delta1.0)和nn.SmoothL1Loss(beta1.0)兩者形式略有差異Huber 是標準的 Huber 定義SmoothL1 是 Fast R-CNN 里用的變體beta 為 0 時退化成 L1。4.3 損失函數選型決策表選哪個損失不看哪個更高級而是看你的數據特性和任務要求。我整理了一張表實際項目里可以直接對號入座。場景推薦損失理由數據干凈追求極致精度MSE / L2梯度隨誤差衰減能收斂到很精確的解數據含離群點MAE / L1 / Huber對極端誤差不敏感需要稀疏權重加 L1 正則項恒定的壓縮力能把小權重推向 0需要平滑權重、防過擬合加 L2 正則weight_decay權重整體被壓制不會出現極端值目標值跨越多個數量級對數變換后 MSE 或 RMSLE直接 MSE 會被大值主導需要可解釋的平均誤差訓練用 MSE報告用 RMSE訓練效率與人類可讀性兼顧多任務學習各任務量綱不同各任務用 MAE 或先歸一化再 MSE量綱統(tǒng)一后再加權更合理最后一行值得展開說一句。多任務學習里如果任務 A 的損失是 0.1任務 B 的損失是 1000直接相加的話任務 B 完全主導梯度。這時候要么把每個任務的目標值先歸一化到同一量級要么把損失換成 MAE 這種尺度更溫和的形式要么給不同任務手動加權。我一般傾向先做目標歸一化因為這樣損失數值本身就能反映訓練狀態(tài)不用記一堆權重系數。5. 完整實戰(zhàn)三種損失的對比實驗5.1 造數據與模型搭建為了讓你能直接復現我用一段自包含的代碼把三種損失在同一份數據上跑一遍。數據用一維回歸加一段人為的離群點這樣差異會很明顯。import torch import torch.nn as nn import numpy as np torch.manual_seed(42) np.random.seed(42) # 生成干凈數據 y 2x 1 noise n_train 800 n_val 200 X_train torch.rand(n_train, 1) * 10 - 5 y_train 2 * X_train 1 torch.randn(n_train, 1) * 0.5 X_val torch.rand(n_val, 1) * 10 - 5 y_val 2 * X_val 1 torch.randn(n_val, 1) * 0.5 # 人為注入 5% 的離群點只污染訓練集 n_outlier int(0.05 * n_train) outlier_idx torch.randperm(n_train)[:n_outlier] y_train[outlier_idx] torch.randn(n_outlier, 1) * 20 # 一個簡單的兩層 MLP def make_model(): return nn.Sequential( nn.Linear(1, 64), nn.ReLU(), nn.Linear(64, 64), nn.ReLU(), nn.Linear(64, 1), )模型故意做得很小因為這里要觀察的是損失函數的行為差異網絡容量大了反而會掩蓋掉。輸入特征做了中心化處理減 5 再乘 10 那步讓數據落在 [-5, 5]這樣初始學習率 0.01 就能跑得動不用額外做標準化。5.2 訓練循環(huán)與評估代碼訓練部分寫成函數接受不同的損失函數對象其余配置完全一致保證對比公平。def train(loss_fn, epochs200, lr1e-2): model make_model() optimizer torch.optim.Adam(model.parameters(), lrlr) # 后期降學習率讓 MAE 這種恒定梯度的方法能穩(wěn)定下來 scheduler torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_maxepochs) history [] for epoch in range(epochs): model.train() optimizer.zero_grad() pred model(X_train) loss loss_fn(pred, y_train) loss.backward() optimizer.step() scheduler.step() # 評估統(tǒng)一用 MAE 和 RMSE和訓練損失解耦 model.eval() with torch.no_grad(): val_pred model(X_val) val_mae (val_pred - y_val).abs().mean().item() val_rmse torch.sqrt(((val_pred - y_val) ** 2).mean()).item() history.append((epoch, val_mae, val_rmse)) return history results {} results[MSE] train(nn.MSELoss()) results[MAE] train(nn.L1Loss()) results[Huber] train(nn.HuberLoss(delta1.0))這里有兩個設計細節(jié)值得說明。一是評估階段統(tǒng)一用 MAE 和 RMSE和訓練用的損失分開這樣三種方法才有可比性——如果用各自的訓練損失去比較數值根本不在一個量綱上。二是加了余弦退火的學習率調度因為 MAE 的梯度是恒定的不打調度后期會一直在最優(yōu)點附近抖動收斂曲線會很難看這不是損失函數的缺點是優(yōu)化策略沒配合好。訓練完之后把最終結果和最優(yōu)輪次的指標打印出來for name, hist in results.items(): best min(hist, keylambda x: x[1]) final hist[-1] print(f{name:8s} | best epoch {best[0]:3d} | val MAE {best[1]:.4f} | fval RMSE {best[2]:.4f} | final MAE {final[1]:.4f})5.3 結果對比與解讀跑完之后大致會看到這樣的模式具體數值受隨機種子影響但趨勢穩(wěn)定損失最優(yōu)驗證 MAE最優(yōu)驗證 RMSE訓練后期是否抖動MSE0.62 ~ 0.700.85 ~ 0.95是RMSE 偏高MAE0.44 ~ 0.480.55 ~ 0.60否平穩(wěn)Huber0.45 ~ 0.490.56 ~ 0.62輕微MSE 在含離群點的數據上表現最差原因前面已經分析了。但這里還有一個更細的觀察MSE 的 RMSE 和 MAE 之間的差距比其他兩個損失大得多。MSE 的 MAE 大約 0.65RMSE 大約 0.90差了 0.25而 MAE 損失的這兩個值只差 0.12 左右。這說明 MSE 訓練出來的模型在少數樣本上錯得非常厲害拉高了 RMSE。反過來如果你把離群點去掉再跑一遍會發(fā)現 MSE 的表現反超 MAE——數據干凈的時候MSE 的二次懲罰能提供更精確的梯度信息收斂到的最優(yōu)解更接近真實參數。這個反轉很有意思也是我在多個項目里反復驗證過的損失函數沒有絕對的好壞只有和當前數據分布匹不匹配。還有一個現象值得留意MAE 損失訓出來的模型預測值往往更保守傾向于預測中位數而不是均值。因為 MAE 的最優(yōu)解是中位數MSE 的最優(yōu)解是均值。在偏態(tài)分布的數據上這個差異會直接體現在預測結果上——如果你做的是房價預測而房價分布右偏MAE 訓出來的模型會低估高價房MSE 訓出來的模型會被少數豪宅拉高整體預測。選哪個取決于你的業(yè)務更在意哪一類錯誤。6. 正則化場景下的 L1/L2權重衰減怎么配6.1 Lasso 與 Ridge 在 PyTorch 里的實現方式L1 和 L2 除了當損失函數還經常以正則項的身份出現也就是經典的 Lasso 和 Ridge。區(qū)別在于損失函數里的 L1/L2 是對殘差算的正則項里的 L1/L2 是對模型權重算的。數學形式上的差異只是作用對象不同但工程實現上完全是兩碼事。L2 正則可以直接通過優(yōu)化器的weight_decay參數實現一行搞定optimizer torch.optim.Adam(model.parameters(), lr1e-3, weight_decay1e-4)L1 正則沒有現成的優(yōu)化器參數需要手動加到損失里def l1_regularization(model, lam1e-4): reg 0.0 for name, param in model.named_parameters(): if weight in name: # 通常不對 bias 做正則 reg reg param.abs().sum() return lam * reg loss criterion(pred, target) l1_regularization(model, lam1e-4)注意這里我用param.abs().sum()而不是torch.linalg.vector_norm(param, ord1)因為對于權重矩陣來說L1 正則通常是把所有元素絕對值加起來不區(qū)分維度。如果寫成vector_norm(param, ord1, dim1).sum()那語義就變了是先按行求 L1 范數再把每行的范數相加結果雖然數值相同因為 L1 范數滿足可加性但對梯度的語義解釋不同。數值上確實一樣但寫清楚意圖對后續(xù)維護更友好。6.2 AdamW 與 Adam 的 weight_decay 差異這里有一個非常經典的坑值得單獨拿出來說。在 PyTorch 里torch.optim.Adam(weight_decay...)和torch.optim.AdamW(weight_decay...)的行為是不一樣的。Adam 的 weight_decay 是把 L2 正則項加進梯度里然后讓 Adam 的自適應學習率機制去縮放它。這導致了一個問題對于梯度一直很大的參數實際的正則效果會被削弱對于梯度很小的參數正則效果會被放大。這和 L2 正則的初衷對所有權重均勻施加壓縮不符。AdamW 把權重衰減從梯度計算里解耦出來直接對參數做一個固定的衰減 $w \leftarrow w - \eta \lambda w$不再經過自適應學習率的調整。這樣正則的強度就只由學習率和 lambda 決定可控性高很多。# 老寫法正則強度會被自適應學習率扭曲 optimizer_a torch.optim.Adam(model.parameters(), lr1e-3, weight_decay1e-2) # 推薦寫法解耦的權重衰減 optimizer_b torch.optim.AdamW(model.parameters(), lr1e-3, weight_decay1e-2)同樣的權重衰減系數在兩個優(yōu)化器下得到的正則強度可能差幾倍。如果你從 Adam 切換到 AdamW 而沒調整 lambda會明顯感覺正則變強了模型欠擬合。我的經驗是先用 AdamWlambda 從 1e-4 到 1e-2 之間按對數尺度試幾個值觀察驗證損失和訓練損失的差值差值小說明正則偏弱差值大說明正則過強。6.3 手寫正則項時的注意事項手動加 L1 或者 L2 正則的時候有幾個細節(jié)容易忽略。一是正則項要不要參與 loss 的 reduction。通常做法是正則項單獨算不和主損失一起被 mean 掉。如果你寫loss criterion(pred, target) lam * reg主損失是平均過的正則項是求和過的兩者的尺度就沒有對齊。當 batch size 變化的時候這個不對齊會被放大。穩(wěn)妥的做法是把正則項也除以 batch size或者干脆用一個很小的 lam 讓尺度差異不那么重要。二是要不要對 bias 和歸一化層的參數做正則。標準的 L2 正則通常只作用在權重矩陣上不動 bias 和 BatchNorm 的 gamma/beta。因為 bias 數量少正則它意義不大BatchNorm 的 gamma 是縮放系數正則它反而會傷害表達能力。所以在手寫正則的時候用named_parameters()過濾一下名字是很有必要的。三是多卡訓練時正則項要小心重復計算。如果你用 DataParallelmodel 在各卡上副本的參數是同步的但正則項如果在 forward 里算可能會被算多次。這種情況建議把正則項的計算放在 forward 外面用model.module去訪問真正的參數。注意AdamW 的 weight_decay 默認是 1e-2直接拿過來用在你的任務上不一定合適。小數據集上 1e-2 可能過強大數據集上 1e-4 可能太弱。別照搬要試。7. 常見問題與排查速查表7.1 損失變 nan 或 inf 的幾種根源損失突然變成 nan是訓練中最讓人頭疼的問題之一而 MSE 比 MAE 更容易出這個問題因為它有平方運算。常見原因有這幾類。輸入數據里有 nan 或 inf前向傳播之后就污染了所有輸出這個用torch.isnan(x).any()檢查一遍就能定位。學習率太大導致參數爆炸幾輪之后權重變成極大值平方之后直接溢出這時候把學習率降一個數量級通常能解決。混合精度訓練下fp16 的表示范圍有限MSE 的平方和容易超過 65504 溢出需要用torch.cuda.amp.GradScaler做梯度縮放。還有一種是開方導致的問題——如果你手寫 RMSE 而 MSE 算出來是負數通常是浮點誤差導致極小負數開方就變成 nan這時候需要在開方前加torch.clamp(mse, min1e-12)。# 防 nan 的 RMSE 計算 mse ((pred - target) ** 2).mean() rmse torch.sqrt(torch.clamp(mse, min1e-12))MAE 因為不涉及平方數值上穩(wěn)定得多但在混合精度下如果某個殘差特別大abs本身沒問題問題出在它后面接的梯度累加同樣需要用 GradScaler。7.2 數值精度、dtype 與設備不一致還有一個非常隱蔽的問題dtype 和設備不一致導致的靜默錯誤。比如pred是 float32 在 GPU 上target是 float64 在 CPU 上PyTorch 會拋一個類型錯誤這個還好排查。麻煩的是pred是 float16target是 float32算出來的 loss 會被提升到 float32看起來沒問題但反向傳播時梯度可能因為精度丟失變得很小訓練不動。設備不一致也是類似。兩個張量在不同 GPU 上做運算PyTorch 會報錯這個容易發(fā)現。但如果是在多進程數據加載里某個張量被意外留在 CPU整個訓練會被拖慢幾十倍而且不報錯只能通過 profiler 或者手動打印.device來定位。# 訓練循環(huán)開始時統(tǒng)一檢查一次省得后面查半天 assert pred.device target.device, f{pred.device} vs {target.device} assert pred.dtype target.dtype, f{pred.dtype} vs {target.dtype}這兩行 assertion 建議加在調試階段確認沒問題之后再刪掉能省掉大量排查時間。特別是從別人那里接手代碼的時候先跑一遍看有沒有類型和設備不匹配往往能發(fā)現幾個隱藏的坑。7.3 問題排查速查表最后把常見的癥狀和對應的排查方向整理成表出問題的時候可以直接對照。癥狀可能原因排查方法loss 是 nan輸入含 nan或學習率過大檢查輸入降低 lrloss 是 inf平方后溢出fp16 范圍不夠換 fp32 或加 GradScalerloss 不下降學習率太小或損失量綱和初始化不匹配試大 lr檢查輸出范圍MAE 后期來回震蕩恒定梯度導致無法收斂到精確解加學習率衰減MSE 對個別樣本過敏感數據含離群點換 Huber 或先清洗數據RMSE 遠大于 MAE存在極端誤差樣本看殘差分布考慮 Huberweight_decay 效果不明顯用的 Adam 而非 AdamW換 AdamW重調 lambdaL1 正則后權重不稀疏lambda 太小或沒做歸一化加大 lambda檢查尺度手寫損失比內置慢很多中間張量多沒用融合 kernel優(yōu)先用 nn 模塊多步預測損失量綱不對reduction 分母算錯確認是 B 還是 BTD表里的每一條我都在實際項目里踩過。特別是最后一條多步預測任務里損失按 sum 歸約、報告按 mean 換算中間差了一個 T 倍對不上賬的時候查了半天以為是模型問題結果只是歸約方式沒對齊。最后分享一個小習慣。我在每個涉及損失函數的新項目里都會先寫一個十幾行的自檢腳本造一批固定的輸入和目標把各種損失、范數、RMSE 的數值都算一遍和手算的結果對一下。這個腳本跑通之后才敢把它用到正式訓練里??雌饋硎嵌嗷ㄊ昼姷鼙WC你后面幾個小時的調參不會建立在一個算錯的損失上。這個習慣是我在被 RMSE 的 reduction 問題坑了整整一個下午之后養(yǎng)成的至今沒再出過類似的錯。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
物业黑人 AV一区| 艾草av| 国产丝袜视频| 国产丁香精品露脸视频| 免费人成在线观看网站品爱网| 99无码视频| 91国精产品| 日B操| 麻豆人妻精品一区二区| 新91视频.cmp| 99热官网| 淫荡网址| 野狼激情网| 亚洲激情久久久伊人综合| 色色网91| 中文字幕十五区| 插入逼91| 中文字幕片| 色综合V| 91在线页| 日产操逼| 国产亚洲欧洲在线观看| 久久中文字幕一区不卡| 久久久久ab| 強姦亂倫a| 色性荡荡荡荡视频| 懂色Av| 婷婷色综合| 一区二区三区看视频| 久久久亚洲欧美综合| 龙兴卡官方查询| 日韩无码精品综合久久| 麻豆精品A片免费观看| 又大又大又大又粗爽高潮观看| 丁香五月婷婷五月| 日日操免费视频| 天美一二三在线观看Av| 亚洲制服aⅴ中文字幕| 97这里都是精品| 亚洲密乳AV| 亚洲网污污污污| 性爱视频无打码在线观看| 大香蕉宅男伊人| 久热在线精品免费观看| 99热婷婷一区二区三| 婷婷色中文字幕| 91天天综合在线观看| 日韩性爱高清免费视频| 欧美色性情| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 亚洲图片偷拍视频区| 九九免费影片| 亚洲精品一区中文字幕乱码| 青草草免费网站av| 日天天九九天堂666| 九九九综合精品| 操逼视频亚洲| 亚洲本色精品一区二区久久| 婷婷精品国产欧美精品亚洲人人爽| 五月丁香色情| 日韩国产品视频中文字| 亚洲h片在线免费观看| 人妻精品一区一区三区蜜桃91| 久久 国产精品 一区| 蜜桃狠狠色伊人亚洲综合网站| 狠狠搞 亚洲91| 亚洲精品性爱片| 人妻精品一区一区三区蜜桃91| 欧美|91色综合| 襙一襙| 在线小说视频一区| 中文字幕乱偷人妻久久艾草网| 丁香五月天堂| 欧美性爱系列| 青娱乐国产盛宴视频| 少妇一区二区三区| 亚洲色棕合| 国产夫妻一区二区| 女人爽到高潮久久久| 国产日韩在线播放av| 欧美综合亚洲| 国产免费一区| 女人的天堂大香蕉网| 欧美激情五月天| 久久性爱精品一区| 色视频蜜乳| www欧美91| 成人十八禁日韩欧美一二三| 狠狠躁AV| AV天天综合| 国产高潮AA片免费看| 欧美不卡五十路| 999久久久国产精品| 亚洲色图a| 六月色婷婷| 无码国产精品久久久久| 日韩欧美午夜视频在线| 欧美天天综合网| 亚洲第一视频 欧美风情 日韩| 你草精品在线视频| 婷婷久草一区二区三区| 国产区性爱在线视频秋霞豆| 99久久久无码精品国产人| 夫妻天天操岛国视频| aV中文麻| av草草在线电影| 99re95| 亚洲熟妇乱女区二区三区| 亚州AV无码国产精品| 丁香色狠狠色综合久久小说| 欧美色女人| 黄页网站成人免费| 欧美日韩精品久久久久东北老熟妇| 久久久9品一区二区三区| 久久丁香| 99热这里是精品| 全球成人中文在线| 国模精品娜娜一二三区| 97人人干人人操| 综合操逼| 女人喷水视频在线观看| 欧美性爱伊人| 91人妻素女| 亚欧毛片基地国产毛片基地| www.亚洲成人一区| 26uuu偷拍亚洲欧洲综合| 中国一级αV| 五月天婷婷社区| 91精品少妇搡搡搡| 9 1超碰九色| 九九热午夜欧亚国产视频| 加勒比五月天| 夜夜无码| 91丝袜在线观看| 国产一级内射高清视频| 欧美黄色手机在线观看| 国产精品麻豆视频网站| 国产成人无码高清| 久操操| 另类专区在线观看| 丝袜制服字幕在线| 久久久久久久国产| 茄子社区国产精品| 三久久久四久久久久| 97超碰护士| 免费A片三p视频| 免费精品无码一级毛片牛牛影视| 2024黄色视频| 国内毛片婷婷六月色| 婷婷丁香五月天综合东京热| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 日韩午夜啪啪视频| 麻豆国产96在线| 激情综合婷婷| 求求你操操我| 91精品国| av网站在线观看了| 天天日天天色| 白丝少妇一区二区| 后入人妻无码| 最新亚洲人成网站在线影院| 欧美一区二区三区日韩| 麻豆AV一区二区| 男人的天堂日本东京热| 97亚洲综合在线| 亚洲啪啪综合?v一区综合精品区| 十八禁成人网站在线观看| 三级片网站在线播放| 开心五月激情网| 黄网站黄视频网站进入口| 中文字幕精品亚洲熟女| 日韩一级性爱无码| 欧美亚洲综合色| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 中文字幕一区二区无码成人| 国产美女高潮| 黄色片大香蕉| 日本A级视频| 亚洲中文丝袜美腿诱惑字幕| 国产高清吃奶免费视频网站| 九久9精品| 亚洲五区熟女| 97鸡把在线视频| 岛国免费视频在线| 97超碰69| 精品对白久久不卡| 日本韩欧美在线播放a| 国产无遮挡| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 天天日天天干天天操| 18禁网站在线播放| 久久人妻无码毛片A片麻豆| 久久精品一区二区三区四区五区| 国产精品一区二区 尿失禁| 中文字幕丝袜人妻| 97超碰护士| 久久久久久AV无码免费网站| 97se综合| 日本精品一区二区中文字幕| 伊人久久亚洲色欲综合网站 | 91香蕉国产尤物视频| 亚洲AV成人在线| 屁屁影院一区二区三区国产 | 91老熟女视频| 中文字幕 人妻不满 在线视频| 好舒服视频| 天天视频黄| 亚洲91av| 国产精品不卡高清在线观看| 欧美激情超碰777| 伊人91| 婷婷色婷婷| 色臀aV| 大香蕉久| 99国内熟女露脸视频| 桃花色综合影院| 夜夜操二区| 加勒比综合88| 亚洲高潮少妇| 蜜臀99久久精品久久久懂爱| 婷婷亚洲综合| 无码78| 一区二区偷拍拍视频| 超碰久超碰久| 人人色97| 久久双插| 天天舔天天日天天射| 370p日韩欧美亚洲精品| 99热日| 最新中文字幕在线亚洲| chaopen97久久| 五月天啪啪| 久草在线| 亚洲欧美一区二区不卡视频播放| 亚洲九月丁香| 无码国产精品96久久久久孕妇| 91九久| 国产多人在线观看视频| 亚欧美综合网。| 亚洲aV性爱| 亚洲欧美在线丝袜| 欧美亚洲影视| 国产九九九九九九九九| 超碰97COm中文| 久久久久骚| 在线免费观看日韩一区| 国产欧美另类久久久精品课程| 一区二区三区视频在线观看免费| www.99色| 91伊人| 亚洲国产综合久久天堂| 国产三级中文有码在线视频| 精…码一二三区| 日本免费不卡二区| 人人摸人人添人人操| 很狠操| 2024人人操人人摸| 岛国激情视频软件| 久草资源在线| 亚洲成人妻日韩在线| 大香蕉黄色一区| 日韩欧美性吧婷婷乱伦大香蕉 | 国产51色综合久久免费| 麻豆成人影音在线| 五月天婷婷欧美三区| 99只有精品| 欧美 精品国产制服第一页 | 中文字幕av乱伦| 无码78| 牛牛久久国产精品视频一二三| 狠肏骚人妻| 欧洲欧美视频一区二区| 久热一区二区| 久久后入制服| 中 文字幕一区二区三四 五 区日 日 骚| 日本色色的视频| 热99这里有精品综合久久| 欧美日韩97在线| 天天操夜夜操狠很操| 欧美黄色手机在线观看| 久久国产AⅤ| 午夜人人操| 脫衣舞一区二区三区| 久久久精品视频免费观看| 大香蕉强奸乱伦| 欧美日不卡| 欧洲亚洲人妻无码中字久久三区四区| 欧美少妇性乱| 亚洲se91| www.色婷婷色综合| 免费9 1久久| 后入综合久久| 国产激情视频一区区三区| 97精品一区二区视频| 色乱二区| 77国产精品| 免费在线视频97| 成全在线观看免费观看| 91女网站| 中文字幕99999| 亚卅熟女乱色| 超碰 国产熟女精品一区| 中英熟女操女| 久久久久久夜夜夜夜夜| 中文字幕55555| 啊啊啊好想要| 久久免费老司机精品| 熟妇人妻一区二区三区| 久久东京热久久| 一起草精品人妻| 欧美性爱日韩高清| 天天上日日上日韩精品| 中文乱码字字幕在线第5页| 欧美一区二区三区黄色影视| 91美女在线视频| 国产高清在线自在拍69| 欲香欲色| 丰满的三级少妇欧美久久久| 久久一二三四不卡 | 久 久无码人妻AV| 男人的天堂2018| 日韩欧美操逼xxx| 99视频内射三四| 欧美专区在线| 亭亭在线资源| 久草成人| 超碰在线国产| 尤物视频偷拍免费| 日韩成人精品| 精品无码一区二区| 91无码精品| 美欧色综合| 人人天天干干| 9 9无尺码天堂网| 91肉片| 久/久精品99看9| 91男同| 亚洲天堂中文字| 亚洲欧美九九| 91亚洲电影| 9999免费精彩视频| 日韩国产十八禁| 夜夜欢天天干| 丁香色婷婷| 久久久999国产精品| 欧美性爱系列| 97神马久久| 丝袜大香蕉| 蜜臀99精品国产高清在线观看| 亚洲一区二区三区不卡国产欧美| 九九无码久久精品视频| 久久九九97| 嗯嗯啊啊操死我| 人妻一区二区三区视频 | 快灬快灬 一下爽蜜桃在线观看| 制服乱伦| 久久久亚洲熟妇熟女| 狠狠躁AV| 中文字幕一区二区日韩网| 九九九九97| 3D污黄视频在线观看| 人妻黑丝袜电影| 67914亚洲精品| 欧美性五月| 国产精品久久久亚洲一区| 欧美亚洲手机在线| 亚洲永久AV无码精品秋霞| 强奸乱伦麻豆| 色综合加勒比| 五十路成人在线视频二区三区| 久久婷婷色| 国产黄片在线免费观看| 91综合站| 五月天人妻综合| 亚洲中文字幕妇伦久久| 久久精品国产亚洲AV无码电影| 天天综合站| 色哟哟国产精品免费网址| 日韩亚洲中文字幕在线| a片在线播放| 91美女在线视频| 亚卅熟女乱色| 18禁中文字幕| 狠狠色伊人亚洲综合网站色| 极品出轨视频网站| 呦女网站| 久久伊人青青草| 少妇国产不卡| 超碰色中文| 国产美女91视频| 欧美亚洲日韩人妻在线观看| 日本日皮视频逼| 亚洲精品第一| 97干在线视频| 天美av在线观看| 91free福利| 男人的天堂一区三区| 26uuu国产亚洲综合| 天堂俺去俺来也www久久婷婷| 国模私拍一区二区三区神乳| 超碰97 线线 在现| 精品一区二区国产日韩| 久久久久久久久久va| 97操| 影音先锋乱伦资源| 亚洲情色中文字幕一区| 色色色综合网| 欧美在线观看综合国产| 欧美人人AAA| 国产精品视频白浆免费| 人人摸人人叼| 区一在线观看| 欧美日韩亚洲电影| 97操b| 久久伊人亚洲AV无码网站| 日韩色欲久久一二三四区| 中国女人内射6XXXXX| 99re69综合| 综合 青草 伊久久 影院 综合| 男人的天堂欧美| 亚洲综合97中文网| 国产精品久久久九九九| 粉嫩av一区二区三区四季| 美女露胸露屁股| 东京成人一区| 日韩大香蕉AV影片| 精品人妻1区| 少妇毛片久久| 天天综合麻豆视频| 9 1超碰九色| 国产日韩手机视频在线| 欧美日韩夜夜| 久久久999国产| 日韩强奸av| 男人的天堂网免费| 亚洲第一页欧美| 91亚洲人| 色青青久久影视| 亚洲第91页 | 麻豆天美电影一区二区| 亚洲精品九九九九九九| 26uuu性物| 99re这里| 韩国手机不卡无码三级视频| 日韩欧美资源| 亚洲影视综合| 日本男人插女人的逼黄色| juliaann欧美丝袜办公室| 国产精品爽爽va在线观看98| 综合网久久| 久久精品噜噜噜成人看免欧美大片| 欧美aa一级片| 天堂精品| 亚欧性爱ab| 激情欧美日韩女同久久| 91亚洲色人| 青女在线| 99在线无码精品秘 入口黑人| 麻豆 亚洲 97| 国产女人成人精品视频| 超碰97伊人| 天天看综合网| 9国产超碰| 精品中文日韩字幕视频| 黄片aaaaa一区| 久久久久久中文| 97天堂| 18禁无码永久免费无限制| 婷婷久草一区二区三区| 国产亚洲精品A在线观看下载| 1204av韩国| 亚洲第一在线视频| 国产精品精品系列在线观看| 欧洲精品一区二区三区| 亚洲欧美国产成人综合不卡| 欧美啪啪天堂| 久久久中文版| 国产一区自拍欧美日韩| 亚洲欧美大| 97人人夜夜精品视频| 亚洲九九视频| 色色毛片| 国产丰满熟夫69mpp| 午夜精品探花| 91碰超| 蜜臀视频网站| 久久久久极品| 伊人伊人LD| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 欧美久久婷| 91xingse| 欧美 亚洲 偷拍自拍| 狼狼色丁香久久婷婷综合五月| 欧美96交| 色男人色天堂东京热| 色一射色一射| 欧美日本一区二区a人| 黄色操人| 成人性爱av.com| 人妻少妇av在线观看| 麻花豆传媒剧国产MV出差| www.亚洲黄色| 巨爆乳一区二区爆乳区| 欧美后入| 超碰在线91| 91欧美www| 日韩欧美蜜桃精品久久中文字幕久久| 91强在线播放| 久久噜| 午夜久久久| 国产白丝在线| 日日噜噜夜夜久久亚洲一区二区| 噜噜噜久久亚洲精品色情| 色综合av男人天堂| 有码人妻系列| 亚洲第一页欧美| 超碰天天操| 国产25页| 欧美姓爱综合网| 欧美综合传媒| 超碰久超碰久| 久久久无码视频| 乱伦强奸区日韩| 人妻日日干| 中文字幕第页| 久久99999| 99国产精品免费| 狠久久| 亚洲国产精品99久久久| 国产18精品亚洲精品| 日韩不卡a级视频专区| 丰满的三级少妇欧美久久久| 亚州情色j区| 日本中文字幕一区| 色黄污美女啪啪啪免费网站| 清纯唯美综合亚洲| 丝袜足交视频| 色诱avtt| 日本色色色视频| 国产一区二区三区白丝| 超碰国产精品无码| 久久成人精品| 夜夜爽夜夜爽| 国产日韩无码一区二区三区久久区| 永久免费av无码网站国产app | 操逼网站网站| 五月天婷婷色| 三男一女不戴套的A片| 手机在线中文字幕国产| 日本在线视频导航| 久久久96精品| 97碰在线视频| 婷婷人妻激情| 黄色视频特级毛片| 日韩干B| 国产精品探花色| 熟女一区二区| 国产操逼逼网| AV色五月天| 国产精品爽爽v| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 婷婷久久网| 少妇内射www在线观看视频| 台湾一区国产高清在线| 久久亚洲人妻| 国产精品成人蜜臀AV在线| 天天搞欧美| 狠狠爱综合网| 日韩大香蕉| 国产原创精品| 欧美日韩 强奸乱伦| 性欧美第一页| 精品无码一区二区| 97干在线视频| 久久中出在线| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 三级日本一区二区三区| 超碰午夜在线| 97精品97久久| 久久老子无码午夜伦不卡| 校园春色第一页| 日本精品88888888| 久久久亚洲高清不打码| 色九九久九九| 天天综合网1| 国产亚洲综合欧美一区| 青娱乐淫乱1314| 久久一本大香蕉 | 欧美,亚洲,日韩,v,天堂,手机在线观看| 偷拍自拍在线视频观看| 操人妻视频| 免费超碰97久久| 一区麻豆 高清中文字幕| 国产日本久久免费精品| 青草草免费网站av| 麻豆天美91| 精品传媒在线一区| 亚洲人妻日日日| 51国产午夜精品视频| 国产精品秘 福利姬在线观看| 亚洲无码久久久久久久| 另类图片五月天| 91色图片| 女人的久久久| 一区二区三区日韩欧美| 免费一级特黄特色大片在线观看看| 97久久超碰| 美女好片色日本| 日本三级韩国三级美三级91| 久久久久久久久久久999| 中文字幕二区日韩天堂| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 久久香蕉综合一本到3atv| 亚洲五码一区二区三区| 国产JDAV无码视频在线观看| 不卡在线观看视频| 婷婷五月天激情四射| 婷婷爽人人婷婷爽视频| 亚洲九九九| 欧美黄色片在线播放| 日韩无码极品| 岛国片在线视频网站| 国产精品蜜乳AV| 免费观看日本操逼视频| 日韩性爱一级片| 美女尤物人人操| 日日日日日| 久久久久久久久久久久久久9999| 欧美大香蕉在线观看| 桃色人妻在线视频| 久久m| 欧美亚洲天天| 精品成人动漫一区二区| 操操碰| 麻豆久久久久久久久丝袜| 韩国久久97| 蜜桃精品一区二区三区ww| 日本啊啊啊啊啊视频| 中文字幕乱妇免费视频| 性爱视频免费网址| 国产乱伦性爱AV| 色婷婷婷五月天激情四射| 四虎影视永久在线观看精品免费网站| 97超碰人妻| 国产少妇肉丝在线观看| 久久综合中文国产| 97资源站日韩| 久久老子无码午夜伦不卡| 中文字幕二区日韩天堂| 一区二区三区在线日韩影院观看| 青娱乐休闲视频在线观看| 青青草日韩无码| 无码操逼天堂| 久久av无码| 亚洲视频一二区| 无码久久国产| 亚洲免费精品一区| 色天天野狼综合社区| 午夜福利精品| 操淫穴亚洲五月丁香| 人妻精品视频一区二区三区 | 自拍亚洲综合| 日韩av免费一级电影| 精品久久久九九九孕妇| 性夜影院爽黄A爽免费动漫| 亚洲欧美综合区自拍另类| 欧美97se| 欧亚性爱啪啪| 久久后入制服| 婷婷五月成人| 九九视频黄色片| 啊啊啊要高潮了| 亚洲 国产 精品一区| 欧美天天影院| 五月婷丁香| 黄色无码高清黄色无码网站| 大香蕉啪啪啪啪在线| 加勒比综合| 一区 欧美 日韩 麻豆| 欧美日韩 强奸乱伦| 欧中美三级一区二区三区| 欧美一级国产一级| 91五十路| 少妇丝袜在线观看AV| 天天插天天插| 色操逼网| 狠狠爱大香蕉| 日本啊啊啊啊啊视频| 欧美视频边做饭边橾| 精品夜夜澡人妻无码AV| 屌妞视频久久久久久久久久久久| 又大又长又粗又爽又黄| 精品九区| 精品无av| a片亚洲一本通视频| 青娱乐亚洲自拍| 干B网| 啊啊啊啊啊在线视频| 人妻久久久久久久久久久久久久久| 亚洲国产精品成人综合| 综合少妇网| 欧美黑人168页欧美黑人167| 日本熟妇熟色97一本在线观看| 色青青久久影视| 久草国产在线视频| 啪啪性爱免费视频| 超碰免费人人| 国产精品青草综合久久| 99久久亚洲精品无码毛片潘甜甜| 另类图片天天影视| 欧美一级专区免费大片| 啪啪视频mP4| 欧洲熟妇xxXx欧美老妇裸体| 日韩欧美国产一区二区三区四区| 人人看人人爰人人操 | 国产视频一区二区免费| 亚洲无吗在线视频| 日韩黄片影院| 激情五月天插| 国产97视频| 大逼色网站| 国产2.3.4区| 99超碰网| 啊啊啊啊啊啊在线观看| 国产精品一区二区三区免费视频| 少妇三p| 日韩熟女无码| 乱伦一区二区三区‘| 操逼片中文| 日韩人妻精品久久久久| 日韩欧美女优电影| 狠狠久久四虎| 日韩精品99久久久久久中文字幕| 亚熟在线| 日韩干B| 97资源站日韩| 成人自拍三级在线观看| 国人欧美精品一区二区| 亚洲天堂 视频你懂的| 精品无码一二三四区| 国产少妇高潮| 秋霞怕怕片| 亚洲精品一区二区精品| 亚洲无码AV九九九| 蜜色网色哟哟| 麻豆色99999| 亚洲日韩电影| 免费综合亚洲中文| 在线亚洲丝袜视频网站| AV99热18这里只有精品| 亚洲天天操| 国产精品久久久鸭无码的功能| 精品无码一区二区| 97伊人超碰| 免费人成在线观看网站品爱网| 国产精品麻豆成人AV艾秋| 日韩 欧美 国产 麻豆| 人人妻人人爽| 日韩在线观看字幕精品| 亚洲精品中文字幕一区在线视频| 麻豆久久久久久久久丝袜| 中文字幕一区二区无码成人| 久这精品中文在线观看视频| 中国国国产一级特黄毛片| 欧美91精彩| 粉嫩av久久一区二区三区| 亚洲色堂免费视频| 精久久久| 亚洲第一成人影院色播| 老女人老91妇女老热女| 波多野结衣一级视频| 日日天天久久啊啊aaa| juliaann欧美丝袜办公室| 久久久久人妻| 大香蕉免费3| 国模限制级电影| 97国产超碰| 亚洲国产剧情少妇激情| 国产精品成人无码a v毛片| 国产又大又粗又长视频在线| 中文字幕丰满子伦无码专区在线视频最新 | 99ri在线视频| 人人操人人操人妻人| 九九人人操| 在线日韩精品一区二区三区| 九九久久国产精品| jk白丝没脱就开始啪啪| 四季av一区二区凹凸精品小说| 思思在线免费视频| 国产亚洲色停停久久99精品91| 久久久久久性爱视频| 日韩性爱小视频| 亚州色国| 五月丁香啪啪啪| 家庭乱伦性爱av| 人人九九精| 久久国产99精品72福利| 国产三级中文有码在线视频| 久久 精品| 亚码人妻| 综合网欧美在线| 91影库| 青草精品视频-日本久久久久网站| 中文字幕乱碼在线| 性色av婷婷久久一区二区点复制| 东京热毛片177b2viP| 91影视亚洲| 啊啊啊啊啊在线视频| 国产亚洲综合欧美一区| 天堂俺去俺来也www久久婷婷| 97天天| 国产风韵犹存熟妇三区| 精品久久99| 精品二区久久| 色香欲天天天天综合色| 久久一二三四不卡| 成人网欧美风情| 在线观看不卡一区二区三区| 女人天堂av在线播放| 午夜福利区| 亚洲熟久久| 久草成人影片| 欧洲与亚洲欧美精品中文字幕| 91人妻精华帖| 五十路熟女人妻一区二区在线观看 | 日韩人体偷拍| 欧美国产伊人久久久久| 一类av片在线看| 国产区日韩区在线观看| 乱色视频中文字幕| wwwxxx日本爽| 91福利网在线观看| 大香蕉日亚洲日本亚大| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 无码人妻一区二区三区四区老鸭窝| 校园春色综合香蕉| 超碰是碰在线观看| 中出789在线视频| 日韩欧美被操黄免费观看| 丁香激情网| 久久久久一本一区二区青青蜜月| 国产精品久久久777| 色爽——AV| 国产精品夜夜| 岛国免费黄色网址| 激情小说成人日本无码一| 精品人妻av在线播放| 日日狠狠久久偷偷色综合免费| 91女神在线视频| 亚洲色图欧美色图制服诱惑| 欧美激情精品| 国产福利电影| 99精品久久| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 亚洲国产欧美一区二区潘金莲| 日本女优在线视频福利| 情色五月天久久久| 精品二区久久| 少妇3P性爱自拍| 欧美爆操91| 欧美日韩小说| 最新av中文字幕高清| 开心五月婷婷| 鸥美极品| 亚洲第一免费视频| 欧美美女自慰一区二区三区| 夜夜免费视频| 欧美午夜视频免费观看| 久久久人体| 欧美色91| 欧美国产日韩清纯唯美| 91高清欧美| 日韩成人网址| 国产蜜臀精品一区二区尤物| 激情视屏国产乱伦强奸| 亚洲永久永久永久永久一级一级一级精品 | av网站在线看| 中文字幕日韩情色| 亚洲自拍天堂| 澳门人妻久久| 精品久| 97硬碰| 一区二区视频在看| 国产精品女久久久久av爽| 超碰在线1234区| 丁香色五月 97干| 久久久一区二区三区麻豆| 麻豆天美一区二区| 噜噜噜狠狠色综合| jizz啪啪| 天天搞欧美| 久久久久久性爱片| 温婉少妇玩3p| 国产久久久| 美女AV一区二区| 综合自拍| 免费成人在线观看91| 久久久性少妇| 欧美成人精品一区二区三区| 老熟女乱伦一区| 啊好爽受不了无码| 极品美女福利在线观看| 99热这里只有精品18| 夜夜国产一区| 五月婷婷五月天| 热久久国产| 亚洲精品黑丝| 国产精品网站免费| 色色丁香| 久久久久亚洲?V片无码V| 久久丝袜| 欧美熟女逼久久久久久| 97超碰美国| 欧美图片校园春色| 无码男人天堂| 九九英色视频| 熟女精品一区二区三区| 日韩亚洲国产视频| 无码不卡亚洲成?人片| 天天干1区2区在线| 97在线欧洲| www…国产操逼| 人人玩人人添人人澡免费| 97在线观| 伊人宅男大香蕉| 国产亚洲色婷婷99精品91| 日韩另类色图| 这里都是精品在线观看| 日韩9999| 熟女一区二区三区| sss视频华人在线| 激情五月天网站| 欧洲熟妇xxXx欧美老妇裸体| 草草网站影院白丝内射| 亚洲欧美日韩偷拍色图| 午夜男人的天堂| 久久禁| 久草精品一区| 激情综合av| 九九热超碰97亚洲最新香蕉| 久久精品亚洲成a人天堂| 人人操人人93| 国产精品视频内谢女人| 熟女人妻一区二区三区| 91宗合网| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 亚洲色图欧美色图另类图片| 久久国产精品m码| 欧美色91| 狼人狠干| 亚洲国产成人精品女人久久久| 亚洲在线欧美| 啊啊啊好多水| 91视频伊人| 国产精品蜜臀久久久久无码AV| 久久亚州精品成人Av无| 在线观看不卡一区二区三区| 日本十八禁免费看污网站| 日本人妻中文字幕| 乱伦AVxx| 亚洲欧洲网站免费观看| 亚洲宅男天堂| 久久综合18p| 天美精品一区二区三区四区在线观看| 日韩精品一区二区三区四虎影视| 手机在线人成免费视频| 333kkkk·亚洲com久久| 精品v日韩欧美国产| 综合在线导航一区| 欧美爆乳精品一区二区| 先锋影音av先锋一区| 美女极品一区二区三区| 超碰国产精品无码| 国产亚洲日韩欧| 免费一级特黄特色大片在线观看看 | 国产9l 大屁股| 91欧美综合| 自拍偷拍 日韩欧美| 蜜臀99久久精品久久久懂爱| 久久久久久99AV无码免费网站| 中文字幕精品一区二| 丰满岳乱妇一区二区三区| 美女尤物人人操| 亚洲欧洲精品视频发布| 日本三级日本三级99| 日韩一级二级| 天天综合网在线| 大吊色| 九草九九九| 久久久久久波多野吉衣高潮| 人妻内射一区二区在线视频| 97 国产精品| av影片在线观看不卡| 不卡av在线中文字幕| 亚洲aV性爱| 亚洲AV无码天美传媒一区| www.AV有限公司一区| 日韩在线观看AV| 中文操逼字幕| 玖玖爱免费观看视频| 色操逼网| www狠狠| 欧美日韩少妇色情| 91制服丝袜| 免费精品人妻一区二区三| 婷婷丁香六月天| 久久超碰av在线| 天美传媒精品一区二区| 十八禁视频网站| AV天堂男人的天堂| 色妇综合网| 免费的黄片wwwwww| 欧美少妇性乱| 清纯唯美亚洲综合| 五月激情啪啪| 风月影院男女十八禁| 强奸抽插av| 精品人妻av在线播放| 黑人天8A∨高清网站| 超碰91在线| 成人性爱电影网| 天天草AV| 中字幕人妻一区二区三区| 欧美日不卡| 亚洲伊人青青草| 久久精品国产96精品亚洲拳交| 精品一区96| 少妇一区二区三区| 久久激情五月| 九七人妻在线| 美国日韩黄片| 口爆综合网| 欧美情色亚洲| 久久精品国产亚洲AV高清演员表| 91狠| 精品欧美乱码久| 狼人久草| 大香蕉淫人| 毛片电影一区二区三区| 欧美日韩人妻精品一区二区三区| 曰本人妻人人澡人人夹| 一本大道综合伊人精品热热| 人人操人人干网页| 综合久欧洲| 日韩黄片视频试看| 亚洲蜜臀懂色| 日韩操逼性鲍| 久久綜合很很很| 91在线秘 男同| 亚洲精品久久久久久久久豆丁网| 三上悠亚在线毛片91| 亚洲免费精品一区| 国产精品美女视频诱惑| 夜夜高潮夜夜爽高清视频一| 探花精品 一区二区| AV一二区| 99精品国产户外露出| 九九久久国产精品| 国产精品午夜福利亚洲综合网| 亚射在线| 国产白丝精品在线观看| 国产精品无码久久久久2028| 一道本东京热加勒比一区二区三区| 91美女网站| 闷骚老熟女15P| 中文字幕国产| 亚洲双插| 五月天偷拍| 国内毛片热久久思思热| 91在线欧色| 亚洲精品尤物yw在线影院| 激情四射婷婷六月天| 亚洲欧美中文日韩视频中国语| 色97干| 91大神电影天堂| 国产精品一级毛片不卡视| 欧美综合亚洲| 热天堂一区二区| 国产精品一区午夜福利| 九九九九九九九九九九九蜜桃| 91狠狠色丁香婷婷综合久久精品| 久久 精品| 91精品婷婷国产综合久久竹菊| 国产极品美女高潮无套在线观看| 久久久涩| 91性生活久久久| 成年人性爱日韩| 久久天堂| 天天综合网~91入口| 天天做天天爽| 国产400孕妇孕交群| 激情四射五月天| 91色艳| 欧美一区二区三区另类精品| 99999re| 97色视频在线| 中文字幕精品一区二区精品| 国产欧美精选自拍一区| 国产尤物在线三区| 传媒免费一区二区三区| 日韩婷婷| 国产精品网址| 麻豆精品一区二区三区四区免费观看| 免费网站观看www在线观| 色综合久| 日本一区视频在线观看| 97精品免费视频网站| 老司机午夜福利视频一区二区| 嗯嗯啊在线视频| 加勒比综合a∨| 久肏视频字幕| 麻豆AV一区二区| 日韩乱伦视频| 在线人成亚洲视频免费观看| 蜜臀va69| 欧美在线色| 国产SV一线| 男人的天堂啪啪啪啪啪蜜桃不卡| 操高情无码| 翔田千里A片一区二区| 成人一二三区| 久久熟女嫩草成人片免费| 日本A级视频| 男女91| 激情六月天| 色狠狠综合| ?亚洲伊人伊成久久人综合网| 夜夜草天天| 久久久久97| 女优大全 - 91n| 久久精品超碰| 九九九九热只有精品| 91精品国产乱码| 久湿久久| 强奸熟女一区二区三区| 综合网~91综合网| 九九九久千久久激情蜜桃在线看| 色狠狠综合| 天天综合精品| 天天爱天天操| 激情干在线| 国产一区二区啪啪视频| 国产 日韩 欧美一区| 国产 日韩,欧美 自拍| 天天澡天天爽日日AV| 精品国产乱码久久久A| 亚洲熟女av中文字幕| 91人妻人人澡人人爽人人精品| 中文精品少妇天堂| 成人九九| 69久久| 亚洲图片激情小说| 无码不卡亚洲成?人片| 欧美日韩在线小说 | 又大又长又粗又爽又黄| 亚洲国产欧美另类自拍| 超清福利精品视频在线| 国产99精品一区二区三区免费| 日韩人妻 中文字幕| 久草免费福利在线播放|