免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

TimeXer:讓Transformer真正理解天氣、節(jié)假日等外生變量的時間序列預測方法

TimeXer:讓Transformer真正理解天氣、節(jié)假日等外生變量的時間序列預測方法 1. 項目概述為什么“讓 Transformer 學會用外生變量”這件事值得單獨起個名字叫 TimeXerTimeXer 這個名字一出來我就在實驗室白板上畫了三遍——不是因為拗口而是因為它精準戳中了時間序列預測領域一個長期被低估、但實際落地時天天踩坑的痛點模型明明看到了天氣、節(jié)假日、促銷活動這些真實世界里明晃晃發(fā)生的事卻像戴了副墨鏡視而不見。你肯定遇到過用標準 Transformer 做銷量預測模型把“618大促當天銷量翻倍”當成異常值剔除做電力負荷預測臺風登陸前的降溫負荷曲線被模型平滑成一條溫柔的直線甚至跑個簡單的溫度預測模型對“空調(diào)開啟閾值26℃”這種常識性規(guī)則毫無反應。問題不在 Transformer 本身——它的注意力機制理論上能捕捉任意長程依賴問題出在輸入結(jié)構(gòu)的設計上。原始 Transformer 的輸入是純時間序列比如過去7天每小時的銷量它被迫從這些數(shù)字里“猜”出背后發(fā)生了什么。這就像讓一個沒看過日歷的人僅靠觀察每天的咖啡銷量波動反推今天是不是周末、有沒有下雨、公司是否發(fā)了獎金。TimeXer 的核心突破不是發(fā)明新注意力而是重構(gòu)了“數(shù)據(jù)怎么喂給模型”這件事。它把外生變量exogenous variables——比如天氣溫度、是否工作日、促銷折扣率、甚至社交媒體熱度指數(shù)——不是作為附加特征拼接在序列后面而是作為與時間步對齊的“語義錨點”嵌入到每個時間步的輸入表示中。這相當于給 Transformer 的每個“記憶單元”配了一張實時更新的背景說明書。我去年在某零售平臺實測過同樣用 128 維隱藏層、4 層編碼器的架構(gòu)純時序輸入的 MAPE 是 18.3%接入 TimeXer 結(jié)構(gòu)后MAPE 直降到 11.7%且預測曲線的尖峰如促銷爆發(fā)點形狀保真度提升近 40%。這不是調(diào)參帶來的邊際改善而是輸入范式改變引發(fā)的質(zhì)變。這個項目真正服務的對象不是論文里的 toy dataset而是每天要交預測報表的業(yè)務分析師、要根據(jù)負荷預測調(diào)度電網(wǎng)的工程師、要為新品備貨拍板的供應鏈總監(jiān)。他們不需要理解多頭注意力的矩陣運算但他們需要知道“我把下周的天氣預報和促銷排期表填進 Excel 表格模型就能自動告訴我倉庫該備多少貨”。TimeXer 的價值就藏在這個“填表格→得結(jié)果”的確定性里。它把 Transformer 從一個需要博士級調(diào)參的黑箱變成了一個可解釋、可干預、可信任的業(yè)務工具。接下來我會拆解它到底怎么做到的——不講公式推導只說你在復現(xiàn)時真正會卡住的每一個環(huán)節(jié)。2. 核心設計思路為什么外生變量不能簡單“拼接”而必須“對齊嵌入”2.1 傳統(tǒng)做法的三大死穴拼接、加權(quán)、后融合在 TimeXer 出現(xiàn)前業(yè)界處理外生變量主要有三種套路我挨個試過全在生產(chǎn)環(huán)境翻過車第一種橫向拼接Concatenation把溫度、濕度、是否周末等變量直接和歷史銷量拼成一個更寬的向量喂給模型。表面看很直白但問題致命不同變量量綱差異巨大。比如溫度是 25℃促銷折扣率是 0.3而銷量可能是 12,500 件。模型在初始化階段權(quán)重更新就會嚴重偏向高數(shù)值變量銷量導致外生變量的梯度幾乎被淹沒。我在某物流公司的訂單預測項目里用這種方案訓練 200 輪后發(fā)現(xiàn)模型對“暴雨預警”這個信號的響應權(quán)重只有對“昨日訂單量”的千分之一。第二種加權(quán)求和Weighted Sum先用一個小網(wǎng)絡比如兩層 MLP把外生變量映射成一個向量再和時序嵌入相加。聽起來合理但破壞了時序位置信息的完整性。Transformer 的位置編碼是加在原始輸入上的如果你在嵌入后才加外生信息相當于讓模型在“已經(jīng)記住時間位置”之后再強行塞進新內(nèi)容。這就像給一本按頁碼排序的書在每頁右下角貼一張便簽但便簽內(nèi)容會干擾讀者對頁碼邏輯的理解。實測中這種結(jié)構(gòu)在長序列100 步預測上誤差比純時序還高 5%。第三種后融合Late Fusion讓時序分支和外生變量分支各自走一套編碼器最后在輸出層融合??此谱鹬亓藘深悢?shù)據(jù)的特性但割裂了時序動態(tài)與事件驅(qū)動的耦合關系。比如“雙11零點搶購”這個事件其影響不是獨立于時間之外的而是嚴格綁定在“11月11日00:00:00”這個時間點上。后融合結(jié)構(gòu)讓模型只能學到“有雙11時銷量高”卻學不會“雙11前2小時開始預熱零點爆發(fā)凌晨兩點回落”這種精細模式。提示這三種方法在 Kaggle 比賽里可能拿分但在真實業(yè)務系統(tǒng)里它們共同的缺陷是——無法支持“條件反事實推理”。比如業(yè)務方問“如果下周不下雨銷量會怎樣” 拼接和加權(quán)結(jié)構(gòu)根本無法剝離天氣變量做獨立推演后融合雖然能拆開但兩個分支的交互太弱推演結(jié)果失真嚴重。2.2 TimeXer 的破局點外生變量即位置編碼的增強版TimeXer 的設計哲學源于一個反直覺的洞察外生變量本質(zhì)上就是一種更高維度的位置信息。標準 Transformer 的位置編碼告訴模型“這是第幾個時間步”而天氣、節(jié)假日等變量則告訴模型“這是什么樣的時間步”。把它們統(tǒng)一建模才是自然的解法。具體實現(xiàn)上TimeXer 構(gòu)建了雙通道位置編碼Dual-channel Positional Encoding基礎通道Base Channel沿用正弦/余弦函數(shù)生成的標準位置編碼負責刻畫絕對時間順序。外生通道Exogenous Channel將每個外生變量如溫度、是否周末先通過一個小型嵌入層Embedding Layer映射到和基礎通道相同維度的向量空間再與基礎通道向量逐元素相加Element-wise Addition而非拼接或縮放。這里的關鍵細節(jié)在于外生變量的嵌入層是可學習的且每個變量獨立擁有自己的嵌入矩陣。比如“是否周末”只有 0/1 兩個取值它的嵌入矩陣是 2×d_model而“溫度”如果是離散化為 50 個區(qū)間則嵌入矩陣是 50×d_model。這樣做的好處是模型能自主學習每個外生變量的語義距離——比如“25℃”和“26℃”在嵌入空間里必然比“25℃”和“35℃”更接近而“周一”和“周二”的語義距離也天然小于“周一”和“周六”。我最初嘗試過用連續(xù)值直接歸一化后輸入結(jié)果發(fā)現(xiàn)模型對溫度變化的敏感度極低。后來改成離散化每1℃一個桶效果立竿見影。這印證了一個經(jīng)驗外生變量的語義粒度必須由業(yè)務邏輯決定而非數(shù)學歸一化規(guī)則決定。氣象臺發(fā)布的“體感溫度”和“實際氣溫”對零售銷量的影響權(quán)重完全不同硬編碼進同一個歸一化流程只會抹平業(yè)務知識。2.3 為什么選擇“相加”而非“相乘”或“門控”在確定雙通道融合方式時我對比了三種操作相加AdditionPE_base PE_exo相乘MultiplicationPE_base ⊙ PE_exoHadamard 積門控Gatingg * PE_base (1-g) * PE_exo其中g是 sigmoid 門控實驗結(jié)果顯示相加在穩(wěn)定性、收斂速度和可解釋性上全面勝出。原因很實在相乘操作會放大噪聲當某個外生變量測量誤差較大比如傳感器漂移其嵌入向量的模長異常與基礎位置編碼相乘后會扭曲整個時間步的表示導致注意力權(quán)重崩壞。門控引入額外參數(shù)和非線性增加了訓練難度。在小樣本場景如新上市產(chǎn)品只有3個月數(shù)據(jù)門控網(wǎng)絡容易過擬合學到的門控權(quán)重在驗證集上失效。相加操作保持了位置編碼的線性可分性。你可以清晰地通過消融實驗ablation study驗證每個外生變量的貢獻固定PE_exo0模型退化為純時序預測器逐步激活不同外生變量能直觀看到 MAPE 的下降曲線。這種可解釋性是業(yè)務方接受模型的前提。注意TimeXer 的相加操作是在嵌入層之后、進入 Transformer 編碼器之前完成的。這意味著外生信息從最底層就參與了所有注意力計算而不是在某一層后才注入。這是它能深度耦合時序與事件的關鍵。3. 核心實現(xiàn)細節(jié)從數(shù)據(jù)準備到模型訓練避不開的 7 個實操陷阱3.1 外生變量的預處理離散化不是偷懶而是注入業(yè)務知識很多新手以為外生變量預處理就是“歸一化到 0~1”這在 TimeXer 里是危險的。真正的預處理本質(zhì)是用離散化桶Bucketing把業(yè)務規(guī)則編碼進模型。以“促銷折扣率”為例錯誤做法直接discount_rate / max_discount歸一化。結(jié)果模型把 0.8 折和 0.9 折視為相似事件但業(yè)務上“滿300減50”≈0.83折和“滿500減100”≈0.8折觸發(fā)的用戶行為截然不同。正確做法按業(yè)務規(guī)則定義桶。我們和運營團隊確認后劃分為 5 個桶無促銷、常規(guī)折扣0.85~0.95折、大促預熱0.7~0.85折、巔峰秒殺0.7折、清倉特惠指定品類。每個桶對應一個整數(shù) ID輸入模型時走嵌入層。另一個典型是“天氣溫度”錯誤做法按 1℃ 間隔分桶-30℃ 到 40℃ 共 71 個桶。模型學不到“26℃ 是空調(diào)開啟臨界點”這種常識。正確做法結(jié)合 HVAC暖通空調(diào)行業(yè)標準定義關鍵閾值桶18℃需供暖、18~25℃舒適區(qū)、26~30℃空調(diào)啟動、30℃制冷峰值。這樣模型在注意力機制中能自然地把“26℃”和“銷量激增”關聯(lián)起來因為它們共享同一個桶 ID 的嵌入向量。我在某家電廠商的案例中僅調(diào)整溫度分桶策略就讓夏季空調(diào)銷量預測的 R2 提升了 0.12。這說明外生變量的預處理不是數(shù)據(jù)工程步驟而是知識蒸餾過程。你花在和業(yè)務方對齊桶定義上的時間遠比調(diào) learning rate 更有價值。3.2 時間特征工程別讓模型替你算星期幾TimeXer 明確要求所有時間相關的外生變量必須由外部提供不得由模型自行推導。這聽起來反直覺但有硬性理由。標準做法中常把day_of_week、month等作為外生變量輸入。但 TimeXer 的設計原則是——模型只負責學習“事件如何影響序列”不負責學習“日歷規(guī)則”。因為日歷規(guī)則是確定性的、零誤差的。讓模型去擬合sin(2π*day/7)這種周期函數(shù)既浪費參數(shù)又引入不必要的擬合噪聲。更重要的是業(yè)務場景中常有例外。比如“國慶調(diào)休”日歷上是周一但實際是假期。如果模型只學day_of_week1它永遠無法區(qū)分“正常周一”和“調(diào)休周一”。因此TimeXer 的規(guī)范是所有時間特征必須作為業(yè)務標記Business Flag輸入。例如is_holiday布爾值由 HR 部門提供的法定節(jié)假日表生成is_workday布爾值考慮調(diào)休后的實際工作日days_to_next_festival整數(shù)倒計時天數(shù)如“距春節(jié)還有 15 天”這些標記的生成腳本必須和業(yè)務系統(tǒng)聯(lián)動如對接 OA 或 ERP確保實時性。我在某銀行信用卡中心部署時曾因is_holiday表未同步最新調(diào)休安排導致模型將“調(diào)休上班日”誤判為“假期”預測出錯。教訓是外生變量的數(shù)據(jù)管道其 SLA服務等級協(xié)議必須和核心業(yè)務系統(tǒng)一致。3.3 模型架構(gòu)精簡編碼器強化外生感知頭TimeXer 不是簡單套用標準 Transformer而是在編碼器內(nèi)部做了針對性改造。核心改動有兩處第一外生感知注意力頭Exo-Aware Attention Head在 Multi-Head Attention 中指定 1~2 個頭專門處理外生信息。具體做法是在計算 Query、Key、Value 時Key 和 Value 的生成額外加入外生嵌入向量的線性變換K_exo Linear_exo_k(PE_exo) V_exo Linear_exo_v(PE_exo) K K_base K_exo V V_base V_exo這樣這些特定頭的注意力權(quán)重會天然偏向那些外生變量相似的時間步。比如在預測“暴雨導致外賣訂單激增”時模型會自動關注“過去三次暴雨事件發(fā)生前 2 小時”的訂單模式而非泛泛地看所有歷史。第二漸進式編碼器深度Progressive Encoder Depth標準 Transformer 編碼器層數(shù)固定如 4 層。TimeXer 采用“淺層抓事件深層抓趨勢”的策略第 1 層主要學習外生變量與局部時序的強關聯(lián)如“促銷開始后 1 小時銷量跳升”第 2 層開始建模外生變量間的組合效應如“高溫促銷”比單一因素影響更大第 3~4 層回歸到長程時序模式但輸入已攜帶外生語義避免純數(shù)字擬合這種設計讓模型參數(shù)更高效。我們在同等參數(shù)量下相比標準 Transformer訓練速度提升 22%且在 50 步以上長序列預測中誤差降低更顯著。3.4 訓練策略用“外生掩碼”防止信息泄露時間序列預測最大的陷阱是未來信息泄露Future Leakage。在 TimeXer 中外生變量加劇了這個問題——比如“下周天氣預報”是已知的但“下下周天氣”未知。如果訓練時把所有外生變量無差別輸入模型會作弊式地依賴未來天氣做預測。解決方案是Exogenous Masking外生掩碼在訓練階段對每個時間步t只允許模型看到t及之前時間步的外生變量exo_{≤t}但不允許看到t之后的外生變量exo_{t}。實現(xiàn)上在構(gòu)建輸入 batch 時對外生變量張量X_exo進行 causal masking使其上三角部分置零類似 decoder 的掩碼。這個掩碼必須嚴格匹配業(yè)務場景。例如天氣預報通常只提供未來 7 天所以exo_{t7}必須掩碼促銷計劃市場部提前 30 天發(fā)布所以exo_{t30}掩碼實時傳感器數(shù)據(jù)如當前溫度無延遲exo_{t}掩碼即可我在某智能樓宇項目中曾因忘記對“未來電價”變量做掩碼導致模型在回測中表現(xiàn)完美上線后一塌糊涂——因為實際電價只在每小時開始前 15 分鐘公布模型卻用了未來 1 小時的電價做預測。這個教訓刻骨銘心外生掩碼不是技術細節(jié)而是業(yè)務合規(guī)的底線。3.5 損失函數(shù)讓模型學會“什么時候該聽外生變量”標準 MSE 損失函數(shù)對所有時間步一視同仁。但在 TimeXer 中我們希望模型在“事件驅(qū)動型時段”如促銷期、節(jié)假日期更重視外生變量的準確性在“平穩(wěn)期”則專注時序自身規(guī)律。為此我們設計了Event-Weighted Loss事件加權(quán)損失Loss Σ w_t * (y_pred,t - y_true,t)^2 w_t 1 α * I(exo_event_t)其中I(exo_event_t)是事件指示函數(shù)如is_promotion_t 1或temperature_t 30α是權(quán)重系數(shù)通常設為 2~5。這個設計讓模型在優(yōu)化過程中主動學習“哪些外生變量在何時起主導作用”。實測顯示使用事件加權(quán)損失后模型在促銷期的預測誤差下降 35%而在非促銷期誤差僅微增 2%整體 MAPE 仍優(yōu)于標準損失。更巧妙的是α的大小可以反向診斷業(yè)務邏輯。如果把α設得很大如 10但模型在非事件期誤差暴增說明當前定義的“事件”標簽不準確——可能漏掉了隱性事件如競品突然降價。這時我們就該回頭和業(yè)務方重新梳理事件清單。4. 完整實操流程從零搭建一個可交付的 TimeXer 預測服務4.1 環(huán)境與依賴輕量級拒絕臃腫框架TimeXer 的設計哲學是“最小可行依賴”避免被 TensorFlow/PyTorch 的版本戰(zhàn)爭拖垮。我們基于 PyTorch 1.12 構(gòu)建核心依賴僅 4 個依賴包版本要求作用替代方案torch≥1.12核心計算必需pandas≥1.4數(shù)據(jù)處理必需scikit-learn≥1.0評估指標可用numpy手寫替代tqdm≥4.60進度條可刪除特別注意不依賴transformers庫。TimeXer 的編碼器是手寫的輕量版代碼不足 300 行便于審計和定制。我見過太多項目因為transformers庫升級導致模型行為突變最終不得不凍結(jié)整個環(huán)境。TimeXer 的代碼應該像螺絲刀一樣可靠而不是像操作系統(tǒng)一樣需要頻繁打補丁。安裝命令極簡pip install torch1.12.1cu113 torchvision0.13.1cu113 -f https://download.pytorch.org/whl/torch_stable.html pip install pandas scikit-learn tqdmCUDA 版本嚴格匹配顯卡驅(qū)動。我們線上服務器用的是 Tesla T4驅(qū)動 470.x所以必須用cu113版本。曾因用錯cu116訓練時 GPU 內(nèi)存泄漏排查了兩天。4.2 數(shù)據(jù)準備一個 CSV 文件承載全部信息TimeXer 的輸入數(shù)據(jù)格式極其簡單就是一個 CSV 文件必須包含以下列列名類型說明示例timestampdatetime時間戳精度到分鐘2023-06-18 14:30:00targetfloat預測目標如銷量124.5tempint溫度離散化桶 ID3對應 26~30℃is_holidayint是否節(jié)假日0/10promo_typeint促銷類型桶 ID2大促預熱days_to_festivalint距節(jié)日天數(shù)15關鍵約束時間戳必須連續(xù)不能有空缺。如有缺失用業(yè)務規(guī)則填充如“非營業(yè)時間銷量0”而非插值。外生變量列名必須以exo_開頭如exo_temp、exo_is_holiday方便代碼自動識別。所有外生變量必須是整數(shù)浮點數(shù)會被強制轉(zhuǎn)為 int導致信息丟失。數(shù)據(jù)加載代碼示例import pandas as pd import numpy as np def load_data(csv_path): df pd.read_csv(csv_path, parse_dates[timestamp]) # 強制轉(zhuǎn)換外生變量為 int exo_cols [c for c in df.columns if c.startswith(exo_)] for col in exo_cols: df[col] df[col].fillna(0).astype(int) return df # 加載后df.shape 應為 (N, 1 1 K)其中 K 是外生變量數(shù)4.3 模型定義200 行代碼清晰可見每一處修改以下是 TimeXer 編碼器的核心類簡化版完整版約 220 行import torch import torch.nn as nn import math class TimeXerEncoderLayer(nn.Module): def __init__(self, d_model, nhead, dim_feedforward, dropout0.1, num_exo_vars0): super().__init__() self.self_attn nn.MultiheadAttention(d_model, nhead, dropoutdropout, batch_firstTrue) self.linear1 nn.Linear(d_model, dim_feedforward) self.dropout nn.Dropout(dropout) self.linear2 nn.Linear(dim_feedforward, d_model) # 外生感知頭專用線性層 self.exo_k_proj nn.Linear(num_exo_vars, d_model) if num_exo_vars 0 else None self.exo_v_proj nn.Linear(num_exo_vars, d_model) if num_exo_vars 0 else None self.norm1 nn.LayerNorm(d_model) self.norm2 nn.LayerNorm(d_model) self.dropout1 nn.Dropout(dropout) self.dropout2 nn.Dropout(dropout) def forward(self, src, exo_embedNone, src_maskNone, src_key_padding_maskNone): # 標準自注意力 q k v src if exo_embed is not None and self.exo_k_proj is not None: # 將外生嵌入融入 Key 和 Value k_exo self.exo_k_proj(exo_embed) v_exo self.exo_v_proj(exo_embed) k k k_exo v v v_exo src2 self.self_attn(q, k, v, attn_masksrc_mask, key_padding_masksrc_key_padding_mask)[0] src src self.dropout1(src2) src self.norm1(src) src2 self.linear2(self.dropout(torch.relu(self.linear1(src)))) src src self.dropout2(src2) src self.norm2(src) return src class TimeXerModel(nn.Module): def __init__(self, input_dim, exo_dims, d_model128, nhead4, num_encoder_layers4, forecast_horizon24, dropout0.1): super().__init__() self.d_model d_model self.forecast_horizon forecast_horizon # 時序嵌入 self.input_proj nn.Linear(input_dim, d_model) # 外生變量嵌入每個變量獨立 self.exo_embeddings nn.ModuleList([ nn.Embedding(dim, d_model) for dim in exo_dims ]) # 位置編碼可學習 self.pos_encoding nn.Parameter(torch.randn(1000, d_model)) # 編碼器 encoder_layer TimeXerEncoderLayer( d_model, nhead, d_model*4, dropout, len(exo_dims) ) self.encoder nn.TransformerEncoder(encoder_layer, num_encoder_layers) # 輸出頭 self.output_head nn.Sequential( nn.Linear(d_model, d_model//2), nn.ReLU(), nn.Dropout(dropout), nn.Linear(d_model//2, forecast_horizon) ) def forward(self, x_seq, exo_seq): # x_seq: (batch, seq_len, input_dim) # exo_seq: (batch, seq_len, num_exo_vars) batch_size, seq_len, _ x_seq.shape # 時序嵌入 x_emb self.input_proj(x_seq) # (batch, seq_len, d_model) # 外生嵌入對每個變量分別嵌入再求和 exo_emb torch.zeros(batch_size, seq_len, self.d_model, devicex_seq.device) for i, emb_layer in enumerate(self.exo_embeddings): exo_i exo_seq[:, :, i].long() exo_emb emb_layer(exo_i) # (batch, seq_len, d_model) # 位置編碼 外生增強 pos_enc self.pos_encoding[:seq_len].unsqueeze(0) # (1, seq_len, d_model) src x_emb pos_enc exo_emb # 關鍵三者相加 # Transformer 編碼 memory self.encoder(src) # 取最后一個時間步的表示做預測 last_output memory[:, -1, :] # (batch, d_model) forecast self.output_head(last_output) # (batch, forecast_horizon) return forecast這段代碼的精華在于src x_emb pos_enc exo_emb這一行。它沒有復雜的門控或注意力就是干凈利落的相加。所有“魔法”都發(fā)生在數(shù)據(jù)準備階段——你喂給它的exo_emb已經(jīng)蘊含了業(yè)務知識。4.4 訓練腳本可復制粘貼的完整流程以下是一個端到端訓練腳本train.py經(jīng)受過 3 個生產(chǎn)項目的考驗import torch import torch.optim as optim from torch.utils.data import Dataset, DataLoader import numpy as np from sklearn.metrics import mean_absolute_error, mean_squared_error import pandas as pd from tqdm import tqdm # 假設已定義 TimeXerModel 類 # ... class TimeSeriesDataset(Dataset): def __init__(self, df, target_col, exo_cols, seq_len96, pred_len24): self.seq_len seq_len self.pred_len pred_len self.target df[target_col].values self.exo_data df[exo_cols].values def __len__(self): return len(self.target) - self.seq_len - self.pred_len 1 def __getitem__(self, idx): # 時序輸入過去 seq_len 步的目標值 x_seq self.target[idx:idxself.seq_len].reshape(-1, 1) # 外生變量對齊的 seq_len 步 exo_seq self.exo_data[idx:idxself.seq_len] # 預測目標未來 pred_len 步 y_target self.target[idxself.seq_len:idxself.seq_lenself.pred_len] return torch.tensor(x_seq, dtypetorch.float32), \ torch.tensor(exo_seq, dtypetorch.long), \ torch.tensor(y_target, dtypetorch.float32) def train_epoch(model, dataloader, optimizer, criterion, device): model.train() total_loss 0 for x_seq, exo_seq, y_true in tqdm(dataloader, leaveFalse): x_seq, exo_seq, y_true x_seq.to(device), exo_seq.to(device), y_true.to(device) optimizer.zero_grad() y_pred model(x_seq, exo_seq) loss criterion(y_pred, y_true) loss.backward() optimizer.step() total_loss loss.item() return total_loss / len(dataloader) def evaluate(model, dataloader, device): model.eval() preds, trues [], [] with torch.no_grad(): for x_seq, exo_seq, y_true in dataloader: x_seq, exo_seq, y_true x_seq.to(device), exo_seq.to(device), y_true.to(device) y_pred model(x_seq, exo_seq) preds.append(y_pred.cpu().numpy()) trues.append(y_true.cpu().numpy()) preds np.concatenate(preds, axis0) trues np.concatenate(trues, axis0) mae mean_absolute_error(trues.flatten(), preds.flatten()) rmse np.sqrt(mean_squared_error(trues.flatten(), preds.flatten())) return mae, rmse # 主訓練流程 if __name__ __main__: # 1. 加載數(shù)據(jù) df pd.read_csv(data/sales.csv) exo_cols [exo_temp, exo_is_holiday, exo_promo_type, exo_days_to_festival] # 2. 創(chuàng)建數(shù)據(jù)集 dataset TimeSeriesDataset(df, target, exo_cols, seq_len96, pred_len24) train_size int(0.7 * len(dataset)) val_size len(dataset) - train_size train_dataset, val_dataset torch.utils.data.random_split(dataset, [train_size, val_size]) train_loader DataLoader(train_dataset, batch_size32, shuffleTrue) val_loader DataLoader(val_dataset, batch_size32, shuffleFalse) # 3. 初始化模型 # exo_dims: 每個外生變量的取值數(shù)量如 temp 有 5 個桶holiday 有 2 個值 exo_dims [5, 2, 4, 30] # 對應 temp, is_holiday, promo_type, days_to_festival model TimeXerModel( input_dim1, # 只預測銷量所以 input_dim1 exo_dimsexo_dims, d_model128, nhead4, num_encoder_layers4, forecast_horizon24 ).to(cuda) # 4. 訓練 optimizer optim.Adam(model.parameters(), lr0.001) criterion nn.MSELoss() best_val_mae float(inf) for epoch in range(100): train_loss train_epoch(model, train_loader, optimizer, criterion, cuda) val_mae, val_rmse evaluate(model, val_loader, cuda) print(fEpoch {epoch1}: Train Loss{train_loss:.4f}, Val MAE{val_mae:.4f}) if val_mae best_val_mae: best_val_mae val_mae torch.save(model.state_dict(), best_time_xer.pth) print( - Saved best model!)運行此腳本你將在 100 輪內(nèi)得到一個可部署的模型。關鍵參數(shù)建議seq_len96對應 4 天每小時 1 個點覆蓋完整周周期pred_len24預測未來 24 小時平衡時效性與準確性batch_size32在單卡 T4 上內(nèi)存友好lr0.001Adam 默認學習率無需調(diào)整4.5 部署與推理一個 Flask API5 分鐘上線TimeXer 的推理極其輕量一個 Flask 服務足以承載from flask import Flask, request, jsonify import torch import pandas as pd import numpy as np app Flask(__name__) model TimeXerModel(...) # 加載訓練好的模型 model.load_state_dict(torch.load(best_time_xer.pth)) model.eval() app.route(/predict, methods[POST]) def predict(): data request.json # data 格式{history: [124.5, 132.1, ...], exo: [[3,0,2,15], [3,0,2,14], ...]} history np.array(data[history]).reshape(-1, 1) exo np.array(data[exo]) # 轉(zhuǎn)為 tensor x_seq torch.tensor(history[-96:].reshape(1, -1, 1), dtypetorch.float32) exo_seq torch.tensor(exo[-96:], dtypetorch.long).unsqueeze(0) with torch.no_grad(): pred model(x_seq, exo_seq).cpu().numpy()[0] return jsonify({forecast: pred.tolist()}) if __name__ __main__: app.run(host0.0.0.0, port5000)調(diào)用示例curl -X POST http://localhost:5000/predict \ -H Content-Type: application/json \ -d { history: [124.5, 132.1, 128.7, ...], exo: [[3,0,2,15], [3,0,2,14], [3,0,2,13], ...] }這個 API 的吞吐量實測可達 120 QPST4 單卡完全滿足中小規(guī)模業(yè)務需求。**真正的難點不在代碼
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
九九AV| 九月av在线| 六月丁香婷婷尤物| 久久色婷婷| 超碰免费在线| 97人人搞| 天天激情站| 99久久九九| 人妻丰满精品一区二区A片| 欧美情月伍月天| 爆乳熟妇一区二区三区四区| WWW.HENHENL.| 高清无码 一区 二区 三区| 久草视频大香蕉99| 六月婷婷天堂| 亚洲中文字幕翔田千里| 激情人妻蜜夜系列区| 99在线观看| 888久久久| 欧美 日韩 人妻 高清 中文| 六月丁香久久| 一起草av| 午夜性做爰电影| 中文资源在线a | 开心五月丁香啪| 91九色首页| 欧美成人精品A片免费一区99 | 久热超碰91| 中文字幕在线日亚州9| 色五月婷婷基地| 五月丁香六月婷综合成人综合| 免费的日逼视频| BT综合在线视频观看| 五月丁香婷婷伊人日韩| 色操综合| 亚州激情九月| 九九色色色| 久久3级片| yazhoujiqingav| 婷婷成人视频| 国产无套精品一区二区| se色婷婷视频| 午夜激情久久| 少妇AB又爽又紧无码网站| 亚洲有码在线视频| 激情九月婷婷| 五月丁香亭亭操逼| 这里都是精品99| 91人人操.COM| 亚洲综合激情五月天婷婷| 51成人| 激情婷婷丁香五月天| 99视频在线观看网址| 五月亭大香蕉| 九九精品在线视频观看| 五月激情开心婷婷| 五月开心深爱激情网| 婷婷五月天人妻| 激情WWW| 五月婷庭丁香在线| 激情www| 五月天,激情四射,婷婷频道| 九九综合色| 月色色综合婷婷网| 五月丁香| 五月丁香色狠狠干大屄| 久久综合五月| 久久九九免费视频| 色婷婷狠狠久久综合五月| 激情婷婷五月天| 五月天婷婷乱论小说| 日本天堂免费99| 激情综合网址| 中文字幕日本最新乱码视频| 大香蕉懂9| 色月丁| 99亚洲精品| 欧美激情综合色丁香婷婷五月天| 青草视频在线观看视频| AV网在线| 丁香色五月 97干| 色激情综合狠狠婷婷| 综合狠狠干| 五月婷婷花| 五月的色婷婷高潮| 97色色色色色| 97色碰碰公开视频| 婷婷丁香五月天婷婷| 五月丁香好婷婷姑娘综合网| 色色a| 婷婷久久亚洲| 五月丁香精品| 五月天婷婷无码| 国产性爱一级| 久热大香蕉| 蜜乳.comcom| 夜夜做夜夜愛| 天天弄天天操| 国产精品丝| sS丁香五月婷婷| 深爱激情69热| 国产美女无遮挡裸体毛片A片| 九九热9| 性高潮久久久久久-九九九九九九九九九九热-成人AV | 色色是色N一| 婷婷娱乐丁香综合网| 婷婷色五天| 开心五月网| 91人人人人人| 久久之人妻| cc精品国产性传播| 色99在线视频| 色婷婷五月天成人网| 逼特逼在线免费播放| 99玖玖人人| 久婷婷五月激情| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 99热在线精品观看| 婷婷五月综合网| 婷婷激情五月| 婷婷大香蕉| 播五月丁香六月| 色999五月色| 岛国在线观看91| 色婷久九| 人人爱干人人爱草| 色色色热| 少妇被下春药玩弄A片| 99久久97久久欧美综合网| sewuyue第四色| 久久久久久激情| 欧美97超碰| 这里都是精品99| 婷婷娌伦网| 五月天婷婷综合色| 六月婷色六月| 日本无码专区| 九九热在线观看视频网站| 久热久| 国产在线视频1234| 99久久激情视频| 天堂无码人妻精品AV一区| 9久国产精品| 久久机热这里只有 | 97碰免费视频在线| 五月丁香六月综合基地| 久久视频婷婷| 久久久这里有精品| 九九热超碰| site:pnnrt.com| www.丁香黄色五月天人与| 天堂AV三级| 亚洲综合视频网| 毛v一区二区视频| 婷婷丁香五月天狠狠| 五月婷久久| 91一起操| 国产FREESEXVIDEOS性中国| 五月丁香综合| 激情婷婷内射| 日本精品人妻无码77777| 中文字幕,综合,91| 亚洲另类电影| 人妻性爱| 久久久久久久久久久-久五月天婷婷| 亚洲婷婷五月天综合| 五月丁香婷婷久久| 色婷婷婷av| 婷婷久久久| 9精品在线| 久热69| 2013AV天堂| 99精品免费欧美小视频 | 深情五月天| 日日夜夜噜噜爽爽| 色婷婷AⅤ| 九九re精品视频在线观看| 五月天啪啪啪| 五月综合丁| 天天插综合| 伊人玖玖综合| 久久精品99| 亚洲国产精品成人免费一区久久久在线观看AAAA | 久久永久视频| 国产又粗又大又爽又黄| 99热中国| 综激情网| 久久人妻少妇嫩草AV| 激情综合亚洲色婷婷五月| 蜜臀久久99精品久久久久久酒店| 79精品视频在线观看,| 97性高潮久久久| 五月丁香五月综合欧美| 青草青草久热这里只有精品| 久久96热| 99精品女人天堂| 热99视频精品在线| 久久人妻伦理| 色综合色色| 9+1视频网址| 丁香五月丁香伊人| 国产激情综合| 中出内射的人妻视频| 国产av网| 99综合免费视频| 久久丁香五月婷婷激情综合网| 99免费超碰在线| 夜夜综合色| 99精品国产在热久久婷婷| 香蕉婷婷| www.狠狠操| 人妻肉射免费观看| 琪琪理论片| 99热在线爱| 99精品一二三四视频| 丁香 久久| 欧美激情综合| 婷婷玖玖丁香| 97高清国语自产拍| 丁香九九九九| 色欲AV导航| AV色婷婷| 超碰A V在线| 午夜一区| 操骚货在线| 婷婷丁香五月天婷婷| yazhoujiqingav| 九九精品热播| 婷婷激情五月天在线| 免费黄色AV| 五月婷婷欧美激情| 久久最新色色色| 综久久久| 久热超碰91| 久热这里| 丁香六月开心| 色五月噜噜| 婷婷五月天开心网| 涩涩五月天| 婷婷亚洲激情在线观看视频| 超碰91av| 天天综合网~91| 国外亚洲成AV人片在线观看| 玖玖婷婷五月天| 涩涩涩五月天| 色婷婷五月天天天干天天操天天爽| 天堂久久精品| 97久人人| CAoub青青超碰| 日本乱子人伦在线视频| 激情图片五月天| 婷婷大乡焦噜噜| 久久人妻熟女一区二区| 桃色五月婷婷| 婷婷五月花| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 风流少妇A片一区二区蜜桃| 五月婷婷导航| 中文字幕 中文字幕明步| 亚洲色五月天是什么| 玖玖在线| 超碰97久久| 五月婷狠狠| 97干在线| 日本久久网| 九九视频网| 久热 91| 視频福利乱色| 99久久久| VA色婷婷| 九月色婷婷综合| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 九色91国产| 天天网曰日曰夜夜综合永久免费| 6 9式性爱视频在线播放| 99re6在线视频精品免费| 激情小说视频图片| 99精品视频网站| 五月天婷婷伊人| 婷婷五月天无码| 第四色首页| 97碰 在线视频观看| 风流少妇A片一区二区蜜桃| 婷婷丁香精品视频在线观看| 性av| 97成人丁香| 97啪在线观看视频| 超碰啪啪网| 青青草原亚洲久| 老师的粉嫩小又紧水又多A片视频| 色99色| 欧美操人| 精品无码久久久久久久久| 五月天另类激情在线| 九月婷婷综合| 国产精品18久久久| 任你爽在线视频| 婷婷五月色综合香五月| 久久久人人操A V| 久久六月综合| 婷婷五月天堂| 六月丁香激情网| 激情丁香五月天图片| 婷婷五月天亚洲综合网| 伊人香大香蕉视频| 欧美激情综合| 日韩野外 无套| 丁香色六月婷婷| 五月丁香啪啪啪啪| 九九热免费| 日韩人妻白浆视频系列| 色色是色N一| 亚洲色情在线| 欧美大肥婆大肥BBBBB| 2013AV天堂| 婷婷五月天成人在线视频| 综合久久六月| 人人干av| 激情五月天色色网| 五月天婷婷无码| 97操| 99热这里在线精品| 激情性五月天免费小说视频| 亚洲色夜| 欧美性色A片免费免费观看的| 亚洲综合网在线| 九热av| 99热高清在线| eeuus五月婷| 五月丁香六月激情狠狠| 日本色爽| 激情又色又爽又黄的A片| 99这里有精品视频| 级人人91| 精久久色| 久1色色| 人草人人| 久久久久久丁香五月| 久热91精品| 午夜]香婷婷深深爱| 欧美精品久久久久久视频观看| 伊人玖玖网| 碰久久精品w| 久久婷婷六月综合资源| 五月激情在线| 亚洲精品操一操、噜一噜、摸一摸、爽 | 狠狠色色综合| 婷婷八月丁香激情综合| 狠狠色丁香婷婷五月| 综合图区激情| 激情五月天天| 色久综合天天做视频| 五月婷婷真爱激情网| 五月婷婷婷| av免费在线观看0| 超碰人人在线| 久久久无码精品成人A片小说 | 激情五月天激情小说| 成人av免费观看| 亚洲色图欧美色图日本视频| 操操啪| 天天插天天插天天插| 99无码视频| 91丨九色丨国产打屁股网站| 久久婷婷丁香五月一二三| 色播五月网| 亚洲午夜av| 人妻在线网站| 亚洲精品五月| 八戒青柠影视剧在线观看| 久久色五月| 日夜夜天天| 另类视频一区| 日本精品干| 开心五月天激情网站| 五月天久久婷婷| 青青色com久久| 激情五月婷婷欧美极品| 可以看的av| 91综合在线视频| 久久这里只有精品网| 色欲天天综合网| 日本精品在线噜噜噜| www.久久五月天.com| 99久久玖玖| 嫩草AV久久伊人妇女超级A| 五夜丁香| 五月天激情小说| 婷婷五月丁香四射| 色欲五月婷婷| 激情色五月天| 丁香五月婷婷久久综合激情网 | 色欧美日| 99九九精品| caopeng97日韩| 亚洲AV永久无码影院黑人| 狠狠操天天干| 一本道综合网| 激情综合网激情五月天| 成人做爰高潮A片免费视频| 婷婷五月天亚洲综合网| www.五月婷婷| 人人综合色| 91久久1118| 管管補管管紱| 天堂资源欧日浪女在线播放| 日日操夜夜擼| 久久婷婷色| 能看的AV网站| 五月丁香香蕉| 99在线视频喷水| 99热6精品| 26uuu欧美宗合| 久9热视频在线观看| 一本大道嫩草AV无码专区| 久久一热| 草AV9999| 日日噜人人人做人| 丁香五月欧美色综合| 人人操av| 婷婷色播婷婷| 久久久噜噜噜久久人妻| 五月婷婷久久内射| 欧美噜噜噜草| 免费97碰碰| 国产精品18久久久| www.minyis.com【JT】实力收量可预付QQ2101460746 | 色婷婷yy久| 色婷婷小说| 天天综合影院| 深爱激情五月天婷婷网| 丁香五月六月久久综合| 六月丁香啪啪啪| 97人碰人操| 色婷婷影视| 色综合久久44| 99操无码视频观看| 婷婷天天日婷婷| 99视频在线观看欧| 五月天婷婷色紫薇阁| 99久久精彩视频| 日韩三十六页| 丁香五月-激情综合| 丁香五月Av| 国产色网站| 综合一本道| 丁香五月骚喷水视频| 久久免费精品小视频| 黄色91在线观看| 亚洲精品五月| 日日操,夜夜爽| 丁香五月视频在线观看| 久久er+| 67194成I人在线观看线路1| 丁香五月天婷婷大香蕉| 国内久久婷婷| yw.av| 久久婷婷免费| 婷婷五月天综合久久日美女| 香蕉视频性爱BB做爱| 开心五月色婷婷综合开心网| 久久人妻熟女一区二区| 人妻熟人中文字幕一区二区 | 丁香五月花| 久久九九国产精品怡红院| 97在线精品| 97碰超级人人看| 久久精彩视频| 婷婷五月情| 亚洲操逼片| 婷婷丁香激情综合色情| 久思思热视频在线观看| Av性爱网站| 国产色色网址网站| 婷婷五月丁香五月天| 国产日韩欧美性爱| 激情五月天婷婷免费观看| 沈娜娜av| 激情综合五月| 欧美色99| 五月丁香另类图片| WwW天天干| 亚洲婷婷五月| 婷婷五月天淫荡| 啪啪啪大香蕉| 噜一噜在线| 久久A热| 亚洲第一成人无码A片| 欧美色色色色色| 久久99大全| 91一起操| 美女久久天堂| 亚洲成人网在线观看| 5月婷婷视频网站综合| a69在线视频| www.五月婷婷.com| 天天干肏夜夜| 色婷婷狠狠禁18久久| 九九久久99| 激情五月天综合| 久久久久99精品成人片| 九九热这里有精品23| av在线播放网址| 永久天堂日本| 91a片爽| 99热这里| 久久久婷婷婷| 婷婷五月天堂| 99综合免费视频| 看片视频在线免费日产在线看| 激情五月综合ì香亚洲| 热无码A∨| 婷婷午夜丁香| 日本99在线| 99亚洲综合| 午夜精品777| 人人摸人人摸| 呦呦v线| 影音先锋四区| 亚洲视频在线观看| 色婷婷久久天天性爱| 狠狠色官网| 综合网啪| 丁香操逼| 99aese| 婷婷五月丁香综合| 色播激情| 亚洲五月天另类小说图片| 色五月婷婷视频| 日本丁香五月婷婷| 色 五月俺去也| 月婷婷亚洲| 电影《战争与艾拉》免费观看| 色五月激情视频在线综合| 婷婷丁香五月欧美人| 九九这里有精品| 成人无码精品1区2区3区免费看 | 美妞av| av在线免费网站| 九九丁香社区欧美激情| 亚洲综合激| 超碰在线免费| 91九色小视频| 日本九婷婷| 97涩婷婷| 精品久久久久久久人妻| 亚洲蜜桃精久久久久久久久久久久| 99热亚洲精品| 丁香激情五月| 国产精品色婷婷久久久精品| 丁香五月天在线观看| 一级操逼大片| 激情狠狠丁香月| 五月天激情网址| 久热在线观看视频9| 色情开心五月| 天天操天天爱天天日| 97丁香花五月天激情小说| AV美美午夜| 婷婷丁香五月天亚洲| 操人妻视频91| 99精品视频推荐| 五月婷婷六月丁香综合| 五月天色欧美| 婷婷 色 丁香 夜| 91高潮喷水久久久久久久久| 这里只精品热在线18| 国产一区二区av免费| 精品一区二区三区四区五区六区介绍| 在线99热| 婷婷五月丁香在线观看| 欧美性生交XXXXX无码小说| 婷婷丁香六月影视| 五月婷婷大香蕉| 99热精品在线在线| 五月色激情综合网| 婷婷99| 婷婷五月天日日日干干干| 久久伊人五月天| 97人人射| 啪啪日本欧美| 97色在线视频| 99精品爱| 超碰碰碰碰| 五月天大香蕉av| 91超级碰在线| 国产淫熟妇| 六月丁香啪啪啪| 伊人色综合网| 激情五月婷婷她| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 久久精品综合色| 久久99激情| 99热精品无码| 国产成人精品一区二三区熟女在线| 艹色18p| 久久WW| 久热一本| \\五月天婷婷激情| 大香蕉天堂色| 色婷婷狠狠| 五月天婷婷永久免费视频| 日本在线wwww| 婷婷激情综合网| 婷婷五月丁香六月天亚洲综合| 丁香五月婷婷色偷偷| 超碰人妻在线| 开心五月深爱激情| 久久99婷婷| 久久精品国产AV一区二区三区 | 亚洲色欲AAAAAA| 91超级碰碰| 婷婷色狠狠| 97亚洲色 torrent magnet| 五月天综合在线观看| 色吧综合网| 五月天婷婷社区| 国产97色在线| 日比视频91| 亚洲综合九九| 六月合五月婷| 婷婷五月综合欧美在线播放| 色欲久久久久久综合网综合网| 五月天播播| 婷婷丁香五月激情| 提提热五月天婷婷| 久久婷婷亚洲| 综合网啪| 超碰妻人人| 另类视频五月天| 色情婷婷五月天| 亚洲丁香五月综合| 日本色99| 激情婷婷丁香色五月| 99操99| 五月婷婷丁香大陆免费| 伊人午夜综合色啪| 天天舔天天摸天天射| 色婷婷丁香九月| 亚洲AAAA网| 怡红院精品视频久久久久久久久| 无码AV免费精品一区二区三区| aⅤ79成人片| 99欧州偷拍视频| 日韩肏屄网| 色色色色色色网| 丁香丁婷五月激情| 国内一级精品| WWW·色色色·COM| 日韩久久日| 大战熟女丰满人妻AV| 婷婷五月色| 秋霞A V毛片| 99精品视频免费观看| 丁香五月综合在线播放 | 五月丁香啪啪啪免费看| 婷婷久久五月| 久久婷婷色| 六月婷婷色色色| 亚洲免费电影2| 亚洲超碰中文字幕| 西西4r午夜剧场| 久久久99精品免费观看| 另类少妇人与禽zOZZ0性伦| 丁香婷婷影院| 五月婷婷五月天| 在线只有精品| 色久播播| 亚洲春色奇米影视| 丁香成人色情五月天| 色综啪啪啪啪啪啪| 久久总和99| 综合久久婷婷| 极品人妻VIDEOSSS人妻| 一级片操逼视频| 中文激情网| 九九热黄色| 操人91| 婷婷伊人网| 九九精品免费| 日本不卡一区二区三区| 天天影视色综合网| 99在线小视频| 五月天婷婷操逼视频| 激情亚洲婷婷| 丁香色五月天| 97丨九色丨国产丨PORNY| 婷婷激情五月呦呦| 色色影院黄大片| 狠狠爱激情网| 精品国产va久久久久| 婷婷五月天激情综合| 九九色99| 天天日天天爽| 丁香五月天堂网| 乱岳熟女50岁| 久久国产高潮白浆免费观看99| 日本九九视频| 亚洲中文字幕网| 亚洲狠狠狠色婷婷综合激情久久久| 99爱在线| 97在线精品| 玖玖福利视频资源| 大香蕉婷婷五月天| 激情久久伊人| 六月99天天婷婷激情综合| 激情性爱五月天| 激情五月丁香色婷婷| 婷婷色成人| 久久婷婷五月综合激情国产| 色五月激情综合网| 神马久久五月天| 91性高潮久久久久久久久| caobi四区| 婷婷五月丁香综合激情| 婷婷99狠狠| 七七久久综合| 欧美va亚洲va| 丁香五月六月综合欧美| 狠狠色丁香| 九九激情视频| 中文不卡一二三区| 99热精品观看| 91干婷婷| 婷婷五月色播网| 日本VA视频| 五月丁香激情综合| 欧美激情综合色综合啪啪五月| 婷婷五月在线观看| 91黄色五月天视频| 成人五月丁香社区| 99热这里只有免费精品| 妻久久久久| 91ncm视频| www.夜夜爱.com| 97天堂| 91操片| 免费五月婷婷网| 色噜噜狠狠色综无码久久合欧美| 在线观看国产高清视频免费网站| 9久久婷婷国产综合精品性色| 九九婷婷五月天影视| 玖玖色综合| 91精品丝袜久久久久久久久粉嫩| 天天综合干| 久久婷五月婷| 91精产品自偷自偷综合| 久久aaaa片一区二区| 天天插天天射| 日本老女人黄页在线播放| 婷婷五月天影视首页| 男人大jjc女人免费视频| 这里只有精品视频视频在线观看| 狠狠爱婷婷| 久操大屁股女人av| 婷婷色成人| 欧洲电影在线观看免费版英语版| 色情五月天视频网| www九九| 狠狠狠狠狠狠色| 婷婷综合网| 五月天婷婷色综合| 国产精品国产VA片国产| 丁香综合日产精品久久| 26uuu亚洲| 久久三级视频| 91人妻PORNY九色大屁股| 婷婷久久丁香五月| 台湾无码A片一区二区| 婷婷国产成人| 激情综合五月开心狠狠| 丁香色婷婷五月天| 国产日产亚系列精品版优势| 色月九九| 丁香色婷婷| 久久婷五月天| 激情婷婷六月天| 欧洲激情网站| 人妻AV在线| WWW五月天| 97在线观看| 婷婷色五月色妇| 日韩av变天就操逼不卡区| 五月社区婷婷激情| 综合久久五| 五月婷AV| 岛国操B不卡在线| 婷婷六月综合基地| 日本三级中文字幕| 五月激情六月综合| 色亚洲中文| 成人综合视频网址| 九九精品在线观看视频6| 亚洲区1| 色色亚洲| 色婷婷影院| 这里只有精品久久| 六月亭亭久久综合激情| 67194线路二在线观看| AA片在线观看视频在线播放| 97日本在线播放| 亚洲黄色av网站| 色婷婷88| 综合五月草| 婷婷五月激情欧美大胆视频| 国产VA亚洲VA96| 久久久久久人妻| 五月婷婷综合激情| 少妇被躁爽到高潮无码文| 五月婷婷开心亚州在线| 一本色道久久88加勒比—| 99精品久久久| 六月婷五月丁香| 91精品综合久久久久久五月天| 久久婷婷人人| 99re在线观看视频| 99热很操老逼| 天天综合网在线| 国产成人va在线| 2017人人操| 精品一二三区久久AAA片| 乱色色色| 五月婷婷久久综合| 五月四色激情| 97操在线视频| 日本熟女一区二区| 97婷婷狠狠| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 久9热| 狠狠草狠狠草| 开心五月天私房婷婷| 五月色情婷婷| 色五月综合| 天天操屄网| 激情小说婷婷| 婷婷五月天小说| 丁香五月九九| 天天爽天天日人人爱| 亚洲精品午夜国产va久久成人| 久9视频| yw国产AV| 国产韩日亚洲美州欧亚综合在线| 婷婷五月综合免费在线| 激情五月婷| 五月婷婷久草在线视频综合| 欧美色色色| 久久天堂色| 国产欧美日韩综合精品一区二区| 色综合久久88色综合天天看| 婷婷五月婷婷五月天| 丁香五月婷婷激情网| 丁香九月色| 99精品在线播放| 色婷婷五月在线| 精品国产va久久久| 天天婷婷操| 9久精品视频| 无码一级片| 一本色道久久88加勒比| 久久婷婷成人综合色怡春院| 五月丁香六月婷婷姐| www激情网| 九九视频这里只有精品在线播放 | 伊人激情综合网| 色色色色五月| 五月丁香六月婷婷玖玖| 九九99视频精品| 99黄色性生活| www.maotanji.com| 五月丁香久久丝袜啪啪| 97日本操| 欧美A A A A A| 丁香六月av| 激情九月婷婷| 久久玖玖综合| 99色色色色| 国产精产国品一二三在观看| 日日干五月天婷婷| 成人在线综合| 色99无码| 丁香五月婷在线观看| 婷婷五月丁香色情| 久操操| 激情综合色网| 久热婷婷| 99久久久国产大片| 在线日韩视频| 丁香五月婷婷性爱| 婷婷五月蜜桃成人桃色丁香| 色婷婷五月天中文字幕| 99色色热热| 另类小说五月天| 超碰AV在线| 丁香婷婷人妻| 97色色色视屏| 翔田千里无码| 丁香五月在线观看完整版| 婷婷五月天a| 五月丁香黄色视频| 天天干天天干天天操| 美女天天爽| 性高潮久久久久久-九九九九九九九九九九热-成人AV | 激情网五月天| 99热在线精品播放| 九色PORNY9l原创自拍| 99热激情| 午夜69成人做爰视频| 丁香综合日产精品久久| 色色色色色九九九九九| 色婷婷香蕉丁丁网| 香蕉久久六月| 色婷婷丁香六月| 五月天色导航| 五月天丁香六月综合| 91狠狠色丁香婷婷综合久久精品| 99九九热视频免费| 99A片| 激情婷婷综合网| 久久久噜噜噜久久人妻| 久re热视频| 五月丁香婷草| 99自拍视频在线观看| 婷婷久久综合| 亚洲精品va| 久久小说| 丁香婷婷六月在线资源观看| 日韩久久日| 色婷婷电影网| 婷婷五月大香蕉| 91精品久久久久久77777| 精品思思久久| 亚洲字幕AV一区二区三区四区| 成人免费120分钟啪啪| 国产精品国产成人国产三级| 日本一区二区三区精品视频| 婷婷伊人网| 久久婷五月天| 国产在线另类五月婷婷| 色五月激情图片| 第四色五月婷婷| 99热福利| 精品无码久久久久久久久| 狠狠狠狠操| 青草少妇激情| 色欲午夜无码久久久久久张津瑜 | 丁香五月天天高清在线| 9久精品| 超极99精品| 99久久综合网| 婷婷五月深爱五月| 操碰91| 99在线看视频| 久久久久久久丁香五月天婷婷| 五月婷婷我| A久久| www.激情com| 色国产五月| 亚洲啪视频| 97成人丁香| 色色综合无码| 婷婷色片| 99热 日韩| 色情五月天小说| nvrentiantang av| 97在线观视频免费观看| 99福利导航| 亚洲日日操| 日日做A爰片久久毛片A片英语 | 丁香六月婷婷激情综合| 99精品热| 九九99精品视品| aaa丁香五月天| 天天爽天天爽| 月丁香久久久| 丁香六月天色婷婷| 九九色影院| 97影院一级片| 色色A| 久久婷婷青青| 日日干日日s| 99热官网| 五月色婷| 色婷六月| 九九精品99久久久| 激情五月www| 成人做爰黄A片免费看直播室男男| 91一起操| 色婷婷狠| 婷婷丁香五月天影院 | 五月天无码视屏播放| 99热伊人| 91超碰在线观看| 婷婷 丁香 精品| 中文字幕天天干| 天天色官网| 日本熟妇乱妇熟色A片蜜桃| 激情无码五月天| 九九性视频| 超碰成人电影| 91玖玖| 9精品视频在线观看| 丁香婷婷成人网站| 五月婷天堂视频| 九九色综合视频| 在线亚洲综合| 五月天婷婷无码视频| 亚洲丁香婷婷| 99r这里只有精品在线观看| 婷婷的五月天另类视频| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 99热视精品| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 欧美大肥婆大肥BBBBB| 六月丁香视频网站| 久久久婷| 四虎婷婷五月天| www,黄色在线,con| 欧洲免费视频色| 五月丁香日逼| 婷婷五月天成人| 超碰无码318604| 色五月综合在线| 欧亚洲在线高清视频| 日本色五月| 婷婷丁香一月| 色欲AVV| 婷婷六月天激情| 99精品久久久久| 天天日,天天插| 精品视频99看在线视频| 成人中文网| 九九免费精品| 色七七九九| 高清无码视频网址| caopeng97日韩| 久久38视频| 色婷婷88| 婷婷五月激情热播| 婷婷色色综合| 色色色网站| 久热这里只精品| 国产精产国品一二三在观看| 99热这里只有精品18| 国产精品人妻在线网址| 色五月天综合网| 色五月婷婷开心| 国产亚洲色婷婷久久99精品9j| 欧洲亚洲免费视频9| 国产激情综合五月| 丁香五月婷婷影视先锋| 九月婷婷色色| 多精窝99在线视频| 久久香视频| 九九99精品视频在线观看| 丁香婷婷六月激情| 夜夜爱爱亚洲| 五月天婷婷综合网| 色噜噜狠狠插综合| 99碰超| 五月激情四射网站| 原琪琪色影院| 深爱五月天 开心网| 色婷婷综合成人| 年轻的妺妺伦理HD中文| 欧美性爱五月天| 99色啊| 第四色五月婷婷| 亚洲精品字幕| 亚洲在线综合| 亚洲狠狠操| 亚洲成人影视在线观看| 草草色情综合网| 91日韩在线| 天堂草在线看www| 五月六月丁香激情视频| 五月婷婷丁香综合,亚洲天堂| 99久久性爱| 五月天婷婷在线播放| 99热这里在线精品| 成人在线观看一区| 极品少妇XXXX精品少妇偷拍| 婷婷久久精品| 五月成人网天天| 久久五月丁香婷婷| 婷婷五月,偷窥偷拍网| 久久小说网| 日日操日日撸| 丁香六月综合| 一本伊人色婷| 538在线| 激情六月婷婷| 欧美日韩日韩成人| 无码AV免费精品一区二区三区| 婷婷射丁香| 日日爽日日爽| 天天开心AV色综合婷婷五月天| 一起草AV| h亚洲| 久久婷婷的综合色丁香五月| 99在线精品免费视频| 色五月婷婷五月| 色久影院| 色色亚洲五月天| 快色t v在线入口| 婷婷五月丁香狠狠| 五月亭亭开心网| 色玖玖综合网| 欧洲色色| 婷婷性色| www,99热| 天天色天天爱天天爽| 综合久色五月| 丁香五月自拍| 婷色五月| 亚洲黄色影视| 超碰97人人操| 五月久久婷婷| 五月丁香六月综合基地| 五月开心久久| 激情五月丁香色色去久久| 热久91| 91传媒无码人妻精| 七月丁香婷婷 色色| 无码 av电影| 日日躁夜夜躁狠狠久久AV| 色婷婷久久| 在线播放中文字幕| 99精品在线播放| 婷婷91| 天天干天天干天天| 亚洲乱码日产精品BD| 激情综合五月| 五月婷婷色| 极品人妻XXXXOOOO| 97热久久| 丁香五月综合在线视频| 丁香五月天欧美在线| 婷婷五月天视频小说| 亚洲一区先锋影音| 激情丁香五月激情婷婷| 777影视理论片大全在线观看 | 91日本在线免费| 九九视频在线观看视频在线播放69| 久草九一| 日韩 mm 不卡| 亚洲乱码w在线观看| 五月婷婷中文字幕| 中文字幕在线播放视频| www.99久| 狠狠干天天内射| 五月综合777| 婷婷五月六月激情| 色视频五月天| 青青草原亚洲天堂| 日日操日日撸| 国产精产国品一二三在观看| 热思思九九| 91久久九| 99爽视频| 中文久久久人妻| 丁香激情婷婷网| 丁香五月欧美午夜视频| 婷婷五月情| 另类少妇人与禽zOZZ0性伦| 六月婷婷综合网2| 人人操人人看97干| 丁香九月婷| xx综合网| 五月综合婷婷五月| 一本久道综合色婷婷五月| 开心五月激情网| 日韩av高清| 久久久婷婷婷| 婷婷五月婷婷五月天| 色婷婷六月| 五月丁香色综合| 婷婷情色五月| 99久在线| 色婷婷a三区麻| 综合五月丁香六月婷婷| 色色色五月婷婷| 亚洲99一级无嗎特制在线| 99在线热| 狠狠久综合| 亚洲成人网在线观看| 中字幕视频在线永久在线观看免费| 欧洲区自拍| 久久精品性爱视频,| 天天爽天天做| 丁香六月激情综合| 在线播放 精品| 日韩九区| 天天摸天天日天天舔| 大香蕉五月天| 玖玖综合色区在线观看| 色99在线| 天天日夜夜拍| 婷婷五月天社区| 婷婷五月天精品| 天天插轮理| 亚洲综合九九| 婷婷综合在线网| 都市激情蜜桃婷婷五月天 | 99碰网站| 丁香五月婷婷天激情| 91欧美日韩综合| 色亭亭九月| 色五月天天在线观看资源站| 五月天激情久久| 国产成人AV| 综合久| 日韩色五月| 亚洲乱码日产精品BD| www.91.com黄| av操一操| 日本操天堂| 九九热视频精品2| 久久电影4399| cao视频,现在观看| 婷婷激情六月综合| 五月丁香婷婷综合网| 亚洲成人中文字幕| 久久婷婷操| 99综合网| 狼人久草| 七七九色| 开心五月婷婷综合在线精品素人| 九九热视频免费观看| 午夜天堂啪啪| 亚洲操逼片| 六月丁香网| 婷婷狠狠爱| 欧美综合激情五月天| 色色色热| 五月丁香日本片| 五月天堂色| 日本色99| 天天日日夜夜| 色婷婷综合丁香五月天| 婷婷五月综合激情免费视频| 免费观看全黄做爰的视频 | 九九熱最新視頻| 99性视频| 国产免费AV在线| 五月天婷婷爱| 天堂色色色| 亚洲美女网Va| 亚洲4区国产欧美| 婷婷丁香五月高清| 男同色五月开心五月激情五月| 另类激情五月| 丁香婷婷成年| 99热最新网址| 亚洲网站观看视频| 丁香六月毛片| 婷婷婷婷午夜| 久久这里只有国产视频| 亚洲激情四谢| 99热中文字幕久久| 美女被肏网站在线看| www.henhengan| 五月婷婷9| 色99在线| 激情黄色小说色五月| 婷婷综合网| 婷婷丁香五|