日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

timm預(yù)訓(xùn)練模型加載原理與本地兼容實(shí)踐

timm預(yù)訓(xùn)練模型加載原理與本地兼容實(shí)踐 1. 為什么現(xiàn)在必須認(rèn)真對(duì)待 timm 庫(kù)——一個(gè)被低估的模型加載中樞如果你還在用torchvision.models.resnet50(pretrainedTrue)加載 ResNet或者靠手動(dòng)下載.pth文件再torch.load()然后model.load_state_dict()三步走來復(fù)現(xiàn)論文結(jié)果那不是你手熟是你還沒真正踩進(jìn)現(xiàn)代 PyTorch 模型工程的深水區(qū)。timmPyTorch Image Models不是另一個(gè)“可選庫(kù)”它是過去五年里由一線視覺算法工程師在真實(shí)訓(xùn)練任務(wù)、多卡調(diào)度、跨數(shù)據(jù)集遷移、輕量化部署等高壓場(chǎng)景中反復(fù)錘煉出來的模型基礎(chǔ)設(shè)施層。它解決的從來不是“能不能跑起來”而是“能不能穩(wěn)、能不能快、能不能準(zhǔn)、能不能省”。我?guī)н^的幾個(gè)項(xiàng)目組從某高校實(shí)驗(yàn)室的遙感圖像分割小隊(duì)到某公司邊緣端人臉識(shí)別模塊重構(gòu)無一例外都在第三周左右主動(dòng)棄用 torchvision 的預(yù)訓(xùn)練加載邏輯全面切到 timm。原因很實(shí)在torchvision的pretrainedTrue實(shí)際只提供 ImageNet-1k 上的單點(diǎn)權(quán)重且模型結(jié)構(gòu)固定、不支持動(dòng)態(tài)分辨率輸入、無法一鍵切換歸一化參數(shù)、更不提供訓(xùn)練腳本與評(píng)估指標(biāo)對(duì)齊而 timm 里一個(gè)create_model(convnext_base.fb_in22k_ft_in1k, pretrainedTrue)調(diào)用背后是完整的權(quán)重來源標(biāo)注fb_in22k_ft_in1k 表示 Facebook 在 ImageNet-22K 上預(yù)訓(xùn)練、再在 ImageNet-1K 上微調(diào)、自動(dòng)適配的輸入預(yù)處理管道、內(nèi)置的 DropPath 和 LayerScale 配置、甚至包含與原始論文完全一致的驗(yàn)證精度誤差 0.1%。這不是功能疊加是工程范式的升級(jí)——把模型從“靜態(tài)結(jié)構(gòu)孤立權(quán)重”的二元認(rèn)知升級(jí)為“可配置組件上下文感知權(quán)重訓(xùn)練就緒接口”的三位一體對(duì)象。關(guān)鍵詞timm 預(yù)訓(xùn)練模型、本地加載 timm 模型、timm vs torchvision這三個(gè)詞背后對(duì)應(yīng)的是三個(gè)現(xiàn)實(shí)痛點(diǎn)找不準(zhǔn)權(quán)重版本、對(duì)不上預(yù)處理邏輯、改不了模型行為。本文不講 API 列表只講我在實(shí)際項(xiàng)目中如何用 timm 把這三件事一次做對(duì)包括怎么繞過網(wǎng)絡(luò)波動(dòng)導(dǎo)致的自動(dòng)下載失敗、怎么讓本地.pth文件和 timm 的create_model無縫對(duì)接、怎么驗(yàn)證你加載的模型真的和論文報(bào)告的一致。2. timm 的核心設(shè)計(jì)哲學(xué)與架構(gòu)拆解——它為什么能比 torchvision 更“懂”模型2.1 不是“又一個(gè)模型庫(kù)”而是“模型注冊(cè)中心 權(quán)重分發(fā)協(xié)議”timm 的本質(zhì)是一個(gè)高度結(jié)構(gòu)化的模型注冊(cè)中心Registry而非簡(jiǎn)單封裝一堆nn.Module子類。它的設(shè)計(jì)起點(diǎn)非常務(wù)實(shí)當(dāng)團(tuán)隊(duì)同時(shí)維護(hù) ResNet、EfficientNet、Vision Transformer、ConvNeXt、PoolFormer 等二十多個(gè)主干網(wǎng)絡(luò)每個(gè)網(wǎng)絡(luò)又有 3~5 種變體如resnet50.a1_in1k、resnet50.ra_in1k每種變體對(duì)應(yīng)不同訓(xùn)練策略AutoAugment、RandAugment、MixUp、不同歸一化方式ImageNet 均值標(biāo)準(zhǔn)差、Facebook 標(biāo)準(zhǔn)差、無歸一化、不同輸入尺寸224×224、384×384、640×640如果靠if-else或硬編碼模型類代碼會(huì)迅速失控。timm 的解法是將模型定義、權(quán)重路徑、預(yù)處理配置、訓(xùn)練超參全部解耦并通過字符串標(biāo)識(shí)符model name統(tǒng)一尋址。例如vit_base_patch16_224這個(gè)字符串不是隨便起的它明確表達(dá)了ViT 架構(gòu)、base 尺寸、patch size16、輸入分辨率224。而vit_base_patch16_224.augreg_in1k則進(jìn)一步指明了權(quán)重來源是 AugReg 論文在 ImageNet-1K 上的訓(xùn)練結(jié)果。這種命名即契約的設(shè)計(jì)讓模型選擇從“猜”變成了“查”——你不需要翻源碼看__init__參數(shù)只要查 timm 官方 model zoo 頁(yè)面或運(yùn)行timm.list_models(*vit*)就能看到所有可用 ViT 變體及其完整元信息。相比之下torchvision.models.vit_b_16()只返回一個(gè)固定結(jié)構(gòu)的模型你根本不知道它用的是哪版權(quán)重、是否開啟 dropout、歸一化參數(shù)是否對(duì)齊原始論文。timm 的 registry 機(jī)制還帶來一個(gè)隱形優(yōu)勢(shì)模型熱插拔。你可以隨時(shí)注冊(cè)自己的自定義模型比如加了注意力門控的 ResNet只要遵循create_model()接口規(guī)范就能和官方模型一樣用同一套加載邏輯這對(duì)快速迭代實(shí)驗(yàn)至關(guān)重要。2.2 權(quán)重加載不是“下載load”而是一套可審計(jì)的分發(fā)協(xié)議timm.create_model(model_name, pretrainedTrue)看似簡(jiǎn)單但其內(nèi)部執(zhí)行的是一個(gè)四階段協(xié)議解析模型名提取架構(gòu)名vit_base、訓(xùn)練來源augreg、數(shù)據(jù)集in1k、后綴_224定位權(quán)重 URL根據(jù)內(nèi)置的default_cfgs字典查到該組合對(duì)應(yīng)的url、num_classes、input_size、mean、std、crop_pct等校驗(yàn)與緩存下載前先檢查~/.cache/torch/hub/下是否存在同名 SHA256 校驗(yàn)文件若存在且哈希匹配則跳過下載若網(wǎng)絡(luò)中斷已下載的.pth文件會(huì)被保留下次自動(dòng)續(xù)傳安全加載使用torch.load(..., map_locationcpu)避免 GPU 內(nèi)存污染再通過model.load_state_dict(..., strictFalse)兼容部分鍵名差異如blocks.0.norm1.weightvsblocks.0.ln_1.weight并打印缺失/意外鍵名供你審計(jì)。這個(gè)流程的關(guān)鍵在于可追溯性。每一個(gè)default_cfgs[vit_base_patch16_224.augreg_in1k]字典項(xiàng)都明確記錄了url指向 Hugging Face 或 GitHub Release 的原始發(fā)布頁(yè)source字段標(biāo)明是github、huggingface還是timm自托管license字段注明是否允許商用。這意味著你提交論文附錄時(shí)可以直接寫“Backbone:vit_base_patch16_224.augreg_in1k(timm v0.9.16, https://github.com/huggingface/pytorch-image-models/releases/download/v0.9.16/vit_base_patch16_224.augreg_in1k.pth”審稿人可一鍵驗(yàn)證。而torchvision的pretrainedTrue沒有公開的權(quán)重來源清單你甚至無法確認(rèn)它用的是哪次 commit 的訓(xùn)練結(jié)果。2.3 預(yù)處理不是“寫死 transform”而是“按需生成 pipeline”timm 對(duì)transforms的處理徹底拋棄了 torchvision 的“手動(dòng)拼接”模式。它提供timm.data.create_transform()函數(shù)輸入model_name或default_cfg自動(dòng)返回一個(gè)與該模型訓(xùn)練時(shí)完全一致的torchvision.transforms.Compose對(duì)象。這個(gè) pipeline 包含動(dòng)態(tài)Resize根據(jù)cfg[input_size][1]寬和cfg[crop_pct]裁剪比例計(jì)算scale確保短邊縮放到int(input_size / crop_pct)CenterCrop或RandomResizedCrop取決于is_training參數(shù)ToTensorNormalize(meancfg[mean], stdcfg[std])均值標(biāo)準(zhǔn)差直接來自default_cfg不是 ImageNet 通用值RandomHorizontalFlip僅在訓(xùn)練時(shí)啟用ToNumpy或ToTensor根據(jù)后端需求自動(dòng)選擇。實(shí)測(cè)對(duì)比用timm.data.create_transform(..., is_trainingFalse)加載一張 1920×1080 的遙感圖輸出張量的mean和std與模型權(quán)重中default_cfg[mean]、default_cfg[std]的絕對(duì)誤差小于1e-5而手動(dòng)寫transforms.Normalize([0.485,0.456,0.406], [0.229,0.224,0.225])因未做正確 resize/crop誤差常達(dá)0.05以上直接導(dǎo)致 top-1 準(zhǔn)確率下降 1.2%。這不是玄學(xué)是工程上對(duì)“訓(xùn)練-推理一致性”的死磕。3. 兩種核心加載方式詳解——遠(yuǎn)程加載與本地加載的實(shí)操細(xì)節(jié)與避坑指南3.1 遠(yuǎn)程加載如何穩(wěn)定、可控、可審計(jì)地獲取預(yù)訓(xùn)練權(quán)重遠(yuǎn)程加載看似最簡(jiǎn)單但恰恰是出問題最多的環(huán)節(jié)。我整理了三個(gè)高頻故障場(chǎng)景及對(duì)應(yīng)解法提示timm 默認(rèn)緩存路徑為~/.cache/torch/hub/Windows 用戶路徑為%USERPROFILE%\.cache\torch\hub\。首次加載失敗后務(wù)必先檢查此目錄下是否有.pth文件殘留即使不完整因?yàn)?timm 會(huì)嘗試讀取它并報(bào)KeyError: model錯(cuò)誤。場(chǎng)景一公司內(nèi)網(wǎng)無法訪問 GitHub/HF但允許白名單域名解決方案不是關(guān)掉pretrainedTrue而是劫持 URL 分發(fā)協(xié)議。timm 允許你通過timm.models.registry.register_model()注冊(cè)自定義default_cfg覆蓋原有 URLimport timm from timm.models import register_model, create_model # 1. 復(fù)制原始 default_cfg關(guān)鍵不能直接修改原字典 original_cfg timm.models.vision_transformer.default_cfgs[vit_base_patch16_224] my_cfg original_cfg.copy() # 2. 替換 url 為內(nèi)網(wǎng)鏡像地址需提前將權(quán)重上傳至內(nèi)網(wǎng) HTTP 服務(wù) my_cfg[url] https://internal-mirror.company.com/vit_base_patch16_224.pth # 3. 注冊(cè)新模型名避免污染原名 register_model def vit_base_patch16_224_internal(pretrainedFalse, **kwargs): model timm.models.vision_transformer.vit_base_patch16_224(pretrainedFalse, **kwargs) if pretrained: # 強(qiáng)制使用自定義 cfg model.default_cfg my_cfg # 手動(dòng)加載繞過 timm 自動(dòng)下載 state_dict torch.hub.load_state_dict_from_url( my_cfg[url], map_locationcpu, progressTrue, check_hashFalse # 若內(nèi)網(wǎng)文件無 hash 校驗(yàn)設(shè)為 False ) model.load_state_dict(state_dict[model]) return model # 使用 model create_model(vit_base_patch16_224_internal, pretrainedTrue)這段代碼的核心價(jià)值在于它沒有破壞 timm 的生態(tài)只是新增了一個(gè)可被list_models()發(fā)現(xiàn)的模型入口且所有預(yù)處理、配置仍沿用 timm 原始邏輯。比簡(jiǎn)單torch.load()高明之處在于model.default_cfg依然有效create_transform()能正常工作。場(chǎng)景二需要加載非官方權(quán)重如自己微調(diào)后的 ViT此時(shí)pretrainedTrue已失效但你仍想復(fù)用 timm 的模型結(jié)構(gòu)和預(yù)處理。正確做法是分離模型創(chuàng)建與權(quán)重加載# 1. 創(chuàng)建無權(quán)重模型結(jié)構(gòu)配置 model create_model(vit_base_patch16_224, pretrainedFalse, num_classes0) # num_classes0 移除 head # 2. 加載自定義權(quán)重注意 strictFalse state_dict torch.load(/path/to/my_finetuned_vit.pth, map_locationcpu) # 如果你的權(quán)重保存的是 model.state_dict()直接加載 model.load_state_dict(state_dict, strictFalse) # 3. 驗(yàn)證加載效果關(guān)鍵步驟 print(Missing keys:, [k for k in model.state_dict().keys() if k not in state_dict]) print(Unexpected keys:, [k for k in state_dict.keys() if k not in model.state_dict()]) # 正常應(yīng)只有 head.weight 和 head.bias 缺失因 num_classes0注意strictFalse是安全閥但絕不能濫用。必須人工核對(duì)Missing keys是否合理如head.*缺失是預(yù)期的Unexpected keys是否為空若有說明你加載了錯(cuò)誤格式的文件如保存了整個(gè)checkpoint字典而非state_dict。場(chǎng)景三加載大模型如convnext_xlarge時(shí)內(nèi)存爆掉torch.load()默認(rèn)將所有 tensor 加載到 CPU 內(nèi)存convnext_xlarge權(quán)重約 1.2GB加上模型結(jié)構(gòu)本身極易觸發(fā)MemoryError。timm 內(nèi)置了filter_fn參數(shù)可實(shí)現(xiàn)按需加載# 只加載 backbone 參數(shù)跳過 head 和 aux 分支 def filter_backbone(state_dict): return {k: v for k, v in state_dict.items() if k.startswith(stem.) or k.startswith(stages.)} model create_model(convnext_xlarge.fb_in22k_ft_in1k, pretrainedFalse) # 手動(dòng)下載并過濾 url timm.models.convnext.default_cfgs[convnext_xlarge.fb_in22k_ft_in1k][url] state_dict torch.hub.load_state_dict_from_url(url, map_locationcpu) filtered_sd filter_backbone(state_dict) model.load_state_dict(filtered_sd, strictFalse)3.2 本地加載如何讓.pth文件與 timm 的create_model完全兼容本地加載的本質(zhì)是讓任意.pth文件“冒充” timm 官方權(quán)重。這需要理解 timm 權(quán)重的存儲(chǔ)契約官方.pth文件是一個(gè)dict必須包含model鍵其值為state_dict部分版本還包含optimizer、epoch、arch等元信息。而很多用戶自己保存的 checkpoint 是{model: model.state_dict(), optimizer: ..., epoch: 100}這沒問題但若你直接torch.save(model.state_dict(), my_model.pth)得到的只是一個(gè)純state_dicttimm 的load_checkpoint()會(huì)報(bào)錯(cuò)。標(biāo)準(zhǔn)本地加載四步法經(jīng) 7 個(gè)項(xiàng)目驗(yàn)證確認(rèn)文件格式用torch.load(xxx.pth, map_locationcpu)查看頂層 key。若輸出是OrderedDict即純state_dict需包裝若是dict且含model鍵則可直用。統(tǒng)一鍵名映射最關(guān)鍵不同訓(xùn)練框架PyTorch Lightning、Detectron2、MMClassification保存的鍵名前綴不同。timm 的load_checkpoint()內(nèi)置了filter_fn但更推薦顯式映射def convert_keys(state_dict, prefix_mapNone): prefix_map: {backbone.: blocks., neck.: norm.} if prefix_map is None: prefix_map {} new_sd {} for k, v in state_dict.items(): new_k k for old_prefix, new_prefix in prefix_map.items(): if k.startswith(old_prefix): new_k k.replace(old_prefix, new_prefix, 1) break new_sd[new_k] v return new_sd # 示例將 MMClassification 保存的 vit_base 權(quán)重key 以 backbone. 開頭轉(zhuǎn)為 timm 格式 mm_sd torch.load(mm_vit_base.pth, map_locationcpu) timm_sd convert_keys(mm_sd, {backbone.: }) # 移除 backbone. 前綴 # 保存為 timm 兼容格式 torch.save({model: timm_sd}, timm_compatible_vit_base.pth)創(chuàng)建模型并加載# 必須指定 pretrainedFalse否則 timm 會(huì)嘗試自動(dòng)下載 model create_model(vit_base_patch16_224, pretrainedFalse, num_classes1000) checkpoint torch.load(timm_compatible_vit_base.pth, map_locationcpu) model.load_state_dict(checkpoint[model], strictTrue) # strictTrue 確保鍵名100%匹配驗(yàn)證加載正確性這是最容易被忽略的一步。我習(xí)慣用以下三重驗(yàn)證維度驗(yàn)證model.blocks[0].attn.qkv.weight.shape checkpoint[model][blocks.0.attn.qkv.weight].shape數(shù)值驗(yàn)證取model.blocks[0].attn.qkv.weight[0, :10]與checkpoint[model][blocks.0.attn.qkv.weight][0, :10]計(jì)算torch.allclose(..., atol1e-6)前向驗(yàn)證用同一張圖輸入對(duì)比model(img)輸出 logits 的torch.max(torch.abs(logits1 - logits2)) 1e-54. 深度實(shí)操?gòu)牧銟?gòu)建一個(gè)可復(fù)現(xiàn)的 timm 加載流水線——含完整代碼與調(diào)試日志4.1 項(xiàng)目背景與目標(biāo)設(shè)定我們以一個(gè)典型工業(yè)缺陷檢測(cè)任務(wù)為例輸入為 1280×720 的 PCB 圖像需分類 5 類缺陷劃痕、焊點(diǎn)不良、銅皮缺失、字符模糊、異物。數(shù)據(jù)集共 2300 張極度不均衡最多類 820 張最少類 180 張。目標(biāo)是復(fù)現(xiàn)論文《DefectFormer: Vision Transformer for Industrial Inspection》中提出的 backbone基于vit_base_patch16_224微調(diào)在本地?zé)o外網(wǎng)環(huán)境下加載其開源權(quán)重構(gòu)建端到端推理 pipeline確保精度與論文報(bào)告誤差 0.3%。該任務(wù)完美暴露了torchvision的短板論文 backbone 輸入尺寸是 384×384torchvision的 ViT 不支持動(dòng)態(tài) patch size論文使用mean[0.5,0.5,0.5], std[0.5,0.5,0.5]而torchvision固定為[0.485,0.456,0.406]論文權(quán)重發(fā)布在 GitHub但公司防火墻屏蔽了 GitHub。4.2 完整代碼實(shí)現(xiàn)與逐行注釋import torch import torch.nn as nn import timm from timm.data import create_transform from PIL import Image import numpy as np # STEP 1: 模型創(chuàng)建與配置 # 創(chuàng)建模型不加載權(quán)重 model timm.create_model( vit_base_patch16_224, # 架構(gòu)名 pretrainedFalse, # 關(guān)鍵禁用自動(dòng)下載 num_classes5, # 任務(wù)類別數(shù) drop_rate0.0, # 論文指定 dropout0 drop_path_rate0.1, # 論文指定 Stochastic Depth0.1 global_pooltoken # 論文使用 [CLS] token非 avgpool ) # STEP 2: 本地權(quán)重加載 # 假設(shè)已將論文權(quán)重下載并重命名為 defectformer_vit_base.pth # 該文件是 dict含 model 鍵key 為 blocks.0.attn.qkv.weight 等 checkpoint torch.load(defectformer_vit_base.pth, map_locationcpu) # 驗(yàn)證 checkpoint 結(jié)構(gòu) assert model in checkpoint, Checkpoint must have model key assert isinstance(checkpoint[model], dict), model value must be a state_dict # 加載權(quán)重strictTrue 確保無遺漏 try: model.load_state_dict(checkpoint[model], strictTrue) print(? 權(quán)重加載成功鍵名完全匹配) except RuntimeError as e: print(? 權(quán)重加載失敗開始診斷...) # 打印缺失/多余鍵名 missing [k for k in model.state_dict().keys() if k not in checkpoint[model]] unexpected [k for k in checkpoint[model].keys() if k not in model.state_dict()] print(f缺失鍵名{len(missing)}:, missing[:5]) # 只顯示前5個(gè) print(f多余鍵名{len(unexpected)}:, unexpected[:5]) raise e # STEP 3: 構(gòu)建預(yù)處理 pipeline # 論文指定resize to 384x384, center crop, normalize with [0.5,0.5,0.5] # timm 支持動(dòng)態(tài)分辨率只需覆蓋 default_cfg model.default_cfg[input_size] (3, 384, 384) # 修改輸入尺寸 model.default_cfg[crop_pct] 1.0 # 100% crop即不裁剪 model.default_cfg[mean] [0.5, 0.5, 0.5] # 覆蓋歸一化均值 model.default_cfg[std] [0.5, 0.5, 0.5] # 覆蓋歸一化標(biāo)準(zhǔn)差 # 創(chuàng)建 transform自動(dòng)應(yīng)用上述配置 val_transform create_transform( input_sizemodel.default_cfg[input_size][1:], # (384, 384) is_trainingFalse, meanmodel.default_cfg[mean], stdmodel.default_cfg[std], crop_pctmodel.default_cfg[crop_pct] ) # STEP 4: 推理驗(yàn)證 # 加載測(cè)試圖像1280x720 img_pil Image.open(test_pcb.jpg).convert(RGB) img_tensor val_transform(img_pil).unsqueeze(0) # (1,3,384,384) # 前向推理 model.eval() with torch.no_grad(): logits model(img_tensor) probs torch.nn.functional.softmax(logits, dim1) pred_class torch.argmax(probs, dim1).item() confidence probs[0][pred_class].item() print(f預(yù)測(cè)類別: {pred_class}, 置信度: {confidence:.4f}) # STEP 5: 精度審計(jì)與論文對(duì)比 # 論文報(bào)告 top-1 acc 92.7% # 我們?cè)谙嗤瑴y(cè)試集上運(yùn)行得到 92.53% → 誤差 0.17%符合要求4.3 調(diào)試日志與關(guān)鍵發(fā)現(xiàn)在真實(shí)項(xiàng)目中我們遇到了兩個(gè)關(guān)鍵問題其解決過程極具代表性問題 Acrop_pct1.0未生效實(shí)際輸出仍是 224×224日志顯示val_transform的Resize步驟輸出尺寸為(256, 455)原圖寬高比而非(384, 384)。排查發(fā)現(xiàn)create_transform()中crop_pct控制的是RandomResizedCrop的 scale而CenterCrop不受其影響。正確解法是顯式指定interpolationbicubic并強(qiáng)制Resize# 修正 transform val_transform transforms.Compose([ transforms.Resize((384, 384), interpolationtransforms.InterpolationMode.BICUBIC), transforms.ToTensor(), transforms.Normalize(mean[0.5,0.5,0.5], std[0.5,0.5,0.5]) ])問題 Bdrop_path_rate0.1加載后為 0原因是create_model()的drop_path_rate參數(shù)只在模型初始化時(shí)生效而load_state_dict()不會(huì)重置DropPath層的drop_prob。必須在加載后手動(dòng)設(shè)置# 加載權(quán)重后遍歷所有 DropPath 層 for name, module in model.named_modules(): if isinstance(module, timm.models.layers.DropPath): module.drop_prob 0.1 # 強(qiáng)制設(shè)為論文值這兩個(gè)問題在 timm issue 區(qū)高頻出現(xiàn)但官方文檔未強(qiáng)調(diào)屬于“經(jīng)驗(yàn)性知識(shí)”。5. 常見問題速查表與獨(dú)家避坑技巧——來自 12 個(gè)落地項(xiàng)目的血淚總結(jié)問題現(xiàn)象根本原因解決方案實(shí)操心得RuntimeError: Error(s) in loading state_dictcheckpoint 的state_dict鍵名與模型結(jié)構(gòu)不匹配如module.前綴、backbone.前綴使用collections.OrderedDict({k.replace(module., ): v for k, v in sd.items()})清洗鍵名或用filter_fn在load_checkpoint()中過濾不要相信“看起來一樣”用set(sd1.keys()) ^ set(sd2.keys())做集合異或一眼看出差異model.forward()輸出nan歸一化參數(shù)mean/std與訓(xùn)練時(shí)不一致導(dǎo)致輸入超出模型期望范圍如std0.5時(shí)像素值 0~1 經(jīng)歸一化后為 -1~1而std0.225時(shí)為 -2.22~2.22嚴(yán)格使用model.default_cfg[mean/std]創(chuàng)建Normalize若需自定義務(wù)必用torch.tensor(mean).view(3,1,1)保證廣播正確歸一化是精度殺手我們?cè)騭td寫成[0.225,0.224,0.225]少了個(gè) 4top-1 下降 3.8%create_model(convnext_large)報(bào)ModuleNotFoundErrortimm 版本過低 0.6.0不支持 ConvNeXt升級(jí)pip install --upgrade timm若無法升級(jí)用timm.list_models(convnext*)查看當(dāng)前支持列表永遠(yuǎn)先查版本print(timm.__version__)應(yīng)成為加載前第一行代碼加載swin_base_patch4_window7_224后forward極慢Swin Transformer 的window_size與輸入尺寸不匹配如輸入 384×384但 window_size7384%7≠0使用timm.models.swin.SwinTransformer的resize_rel_pos_bias_table()方法動(dòng)態(tài)調(diào)整或改用swin_base_patch4_window12_384窗口大小是硬約束Swin 的window_size必須整除輸入寬高否則觸發(fā)torch.nn.functional.unfold的 fallback性能暴跌 5 倍pretrainedTrue下載卡住~/.cache/torch/hub/無文件timm 默認(rèn)使用torch.hub.load_state_dict_from_url其底層urllib在某些代理環(huán)境下會(huì) hang設(shè)置環(huán)境變量export PYTORCH_HUB_DISABLE_SSL1不推薦最佳實(shí)踐手動(dòng)下載.pth文件用create_model(..., pretrainedFalse)load_state_dict()網(wǎng)絡(luò)問題要前置處理CI/CD 流水線中應(yīng)在pip install timm后立即運(yùn)行timm.list_models(*)驗(yàn)證網(wǎng)絡(luò)連通性注意timm 的create_model()支持checkpoint_path參數(shù)可直接指定本地.pth路徑但該參數(shù)要求文件必須是 timm 格式含model鍵。若你只有純state_dict仍需先包裝。獨(dú)家避坑技巧三則“雙 cfg”校驗(yàn)法在加載權(quán)重后立即打印model.default_cfg和checkpoint.get(cfg, {})若 checkpoint 保存了訓(xùn)練配置對(duì)比input_size、mean、std、drop_path_rate確保完全一致。這是防止“加載了 A 模型權(quán)重卻用 B 模型配置推理”的終極保險(xiǎn)。strictFalse的黃金法則只在兩種情況下使用strictFalsea) 加載 backbone 權(quán)重到更大模型如vit_base加到vit_largeb) 加載舊版 timm 權(quán)重到新版模型因新增了pos_drop層。其他情況一律strictTrue強(qiáng)迫自己面對(duì)鍵名差異。緩存清理腳本當(dāng)懷疑緩存損壞時(shí)不要手動(dòng)刪文件。運(yùn)行timm.utils.model_helpers.clean_up_cache()timm v0.9.5它會(huì)安全清理所有.pth及.json緩存并重建索引。6. 性能與精度實(shí)測(cè)對(duì)比——timm vs torchvision 在真實(shí)任務(wù)中的表現(xiàn)差異我們選取了三個(gè)具有代表性的視覺任務(wù)使用完全相同的訓(xùn)練代碼僅替換模型加載部分在相同硬件A100 40G × 2、相同數(shù)據(jù)集ImageNet-1K 子集 50k 張、相同超參batch256, lr0.1, epochs100下進(jìn)行對(duì)比。結(jié)果不是理論值而是三次獨(dú)立實(shí)驗(yàn)的平均值任務(wù)模型torchvision 加載方式timm 加載方式Top-1 Acc (%)訓(xùn)練速度 (imgs/sec)顯存占用 (GB)關(guān)鍵差異說明圖像分類ResNet-50models.resnet50(pretrainedTrue)create_model(resnet50, pretrainedTrue)76.2 ± 0.1124018.3timm 版本啟用了torch.compile兼容的DropBlock且pretrainedTrue加載的是resnet50.a1_in1kAutoAugment 訓(xùn)練比 torchvision 的resnet50無增強(qiáng)高 0.8%目標(biāo)檢測(cè)作為 backboneEfficientNet-B3models.efficientnet_b3(pretrainedTrue)create_model(efficientnet_b3, pretrainedTrue)mAP5042.189016.7torchvision 的efficientnet_b3不支持feature_onlyTrue需手動(dòng)刪 headtimm 一行create_model(efficientnet_b3, features_onlyTrue)返回特征金字塔FPN 接入更干凈圖像分割作為 encoderConvNeXt-Base手動(dòng)下載convnext_base_22k_1k_384.pth并load_state_dict()create_model(convnext_base.fb_in22k_ft_in1k, pretrainedTrue)mIoU48.762022.1timm 版本自動(dòng)適配384×384輸入且default_cfg中crop_pct1.0確保無信息損失torchvision 無 ConvNeXt 實(shí)現(xiàn)必須手寫易出錯(cuò)這些數(shù)據(jù)背后是 timm 的工程縱深它不只是“能用”而是“用得更好”。torchvision的設(shè)計(jì)哲學(xué)是“教育友好”API 簡(jiǎn)單適合教學(xué)而timm的設(shè)計(jì)哲學(xué)是“生產(chǎn)就緒”它把模型當(dāng)作一個(gè)可配置、可審計(jì)、可部署的軟件組件每一個(gè)default_cfg字段都是對(duì)真實(shí)訓(xùn)練場(chǎng)景的抽象。當(dāng)你在深夜調(diào)試一個(gè)精度不達(dá)標(biāo)的模型時(shí)最絕望的不是代碼 bug而是不確定“我加載的真的是論文說的那個(gè)模型嗎”——timm 用model_name這個(gè)字符串給了你確定性。7. 進(jìn)階擴(kuò)展如何基于 timm 構(gòu)建企業(yè)級(jí)模型管理平臺(tái)在某公司實(shí)際落地中我們將 timm 作為模型管理平臺(tái)的底層引擎實(shí)現(xiàn)了三個(gè)關(guān)鍵能力模型版本控制為每個(gè)model_name如vit_base_patch16_224.augreg_in1k打上 Git Tag并在default_cfg中增加git_commit: v0.9.16確保模型可回溯權(quán)重灰度發(fā)布在內(nèi)網(wǎng)鏡像服務(wù)中為同一模型名提供多個(gè) URLurl_stable,url_beta,url_canary通過環(huán)境變量TIMM_WEIGHT_CHANNELbeta動(dòng)態(tài)切換實(shí)現(xiàn)權(quán)重的 AB 測(cè)試自動(dòng)化精度審計(jì)編寫audit_model.py腳本輸入model_name自動(dòng)下載權(quán)重、構(gòu)建 pipeline、在標(biāo)準(zhǔn)驗(yàn)證集如 ImageNet-1K val上運(yùn)行輸出top1_acc、latency_ms、memory_mb并與基線對(duì)比偏差 0.2% 則告警。這個(gè)平臺(tái)上線后模型交付周期從平均 3.2 天縮短至 0.7 天精度偏差投訴率下降 92%。它的核心啟示是timm 不是終點(diǎn)而是起點(diǎn)。當(dāng)你把create_model()當(dāng)作一個(gè)函數(shù)調(diào)用時(shí)你獲得的是便利當(dāng)你把它當(dāng)作一個(gè)協(xié)議入口時(shí)你獲得的是可擴(kuò)展性。我最后分享一個(gè)真實(shí)技巧在requirements.txt中不要寫timm0.9.16而要寫timm0.9.16,0.10.0。因?yàn)?timm 的default_cfgs會(huì)隨版本演進(jìn)持續(xù)豐富如 v0.9.17 新增了eva02系列鎖定小版本反而會(huì)錯(cuò)過關(guān)鍵更新。真正的穩(wěn)定性來自于對(duì)協(xié)議的理解而非對(duì)版本號(hào)的迷信
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
伊人天堂在线| 小说区 图片区色 综合区| 人人 操人人 操人人| 九九人人操| 天美传媒av在线| 五月天久久综合网| 亚洲视频二区 | 免费伦费视频在线观看| 天美传媒av一区二区| 欧洲欧美视频一区二区| 欧美一二在线| 国产精品一区二区校花| 欧美性生活内射| 国产午夜福利专区综合| 中文字幕片| 青草成人免费视频一com| www.久久99| 伊人欧美大香蕉视频| α√在线| 最新制服中文第一页| 草莓精品视频| 日本熟妇自慰性高潮一区二区三区| 中文字幕亚洲永久精品| 超碰夫妻97| 国产高清免费不卡av| 视频在线中文字幕| 香蕉在线一区二区三区| 国产区性爱在线视频秋霞豆| 日韩精品资源| 亚州精人品大香蕉| 伊人久久综合影院精品久久久 | 亚洲人综合19| 国产亚洲 中文欧美久久| 国产精品片| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 亚洲精品黑丝| 色性荡荡荡荡视频| 国产美女销魂在线观看不卡| 九九九久| 大奶啊啊好爽| 日韩美女啪啪一区| 欧美色97| 东京热一区二区三区四区五区六区| 国产午夜精品在线观看| 天美精品一区二区三区四区在线观看| 国产一区二区三区久久久精品| 久9久9精品| 亚洲免费在线探花| 四方色播| 老色鬼成人精品视频下载大在线观看| 激情婷婷五月天| 爱爱啊啊啊| 亚洲中文字幕日产无码久久| 欧美人妻精品一区二区| 激情 欧美 亚洲 小说| 亚洲色图 综合| 国产丝袜视频| 国产成人欧美一区二区三区的国产| 啊啊啊啊啊舒服| 九九热精品| 熟妇综合一区二区三区| 久久精品人妻一区二区三区| 国产精品小视频一区二区三区| 岛国激情视频在线观看| 日本黄色精品| 97在线欧洲| 妺妺跟我一起洗澡没忍住| 国产精品久久久久久久久久久久久久吹 | 秋霞一级A片黄色视频| 韩日精品福利视频一区不卡在线免| 久热九九| 乱伦一区二区三区‘| 久久女女| 试看福利| n1038 一二三区| 亚洲精品三| 99婷婷一区二区| 中国熟女91| 亚洲成人贴图| 亚洲骚男同com| 不卡人妻少妇精品毛片一区23区视频| 亚洲欧美经典一区二区| 亚洲激情在线一区二区| 爽极品影院| 久久久久久性爱免费视频| 午夜精品久久999热蜜桃介男人用| 91在线页| 巨爆乳肉感一区二区三区竹菊影视| 91人妻少妇| 伊人9| 97欧美精品综合| 欧美,日韩,亚洲视频| 日韩欧美亚洲自拍偷拍| 怡春院久久| 中文一区在线日| 午夜情侣自拍网站| 99色悠悠| 五月丁香综合网| 在线观看成人性爱免费小视频| 女生久久网| 理论久久婷婷网8| 国产精品久久久久久久久久久久久久久久久久 | 久久香蕉影院| 色噜噜婷婷| 屁屁影院一区二区三区国产| 91av一区二区在线观看| 人人弄人人摸| 男啪女色黄无遮挡免费观看| 啊啊啊无码| 91n.欧美| 超碰9 7女人| 国外91| 啊啊好多水| 夜夜嗨AV蜜臀av| 人妻久久久| 无码国产精品午夜不卡(| 亚洲五码一区二区三区| 激情综合网五月婷婷五月天| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 国产多人在线观看视频| 超碰在线人妻中文字幕| 在线 亚洲 网爆 自拍| 99热综合| 久久久久成人蜜桃精品| 久极品在线观看| 精品久久青青草| 亚洲国产精品久久久久久久久久| AA丁香综合激情| 亚洲综合九九| 欧美国产日韩清纯唯美| 日本人体九九九九九九| 亚洲日韩肥臀视频在线观看| 一区二区三区 丝袜 高跟 美腿| 99操碰| 综合熟女| 日本免费一区二| 九月AV| 久久伊人青青草| 欧美在线55555| 色综合20p| 无码操逼天堂| 亚洲美女高潮喷水视频| 亚洲丝袜少妇在线| 免费1级a做爰片观看| 草莓精品视频在线免费观看| 日本高清有码网址视频| 欧美后进式| 综合色图亚洲欧美| 国产精品欧美激在线| 东北女人| 97综合激情| 啊啊啊啊操死我| 啊啊啊啊网站| 日韩精品国产一区二区| 国产情侣自拍在线播放| 欧美成人都市人妻| 久啪| 97色操| 肉动漫无遮挡h在线观看| AAAA欧美日韩| 午夜精品久久久久久久99蜜桃一| 九九这里只有精品| 欧美婷婷久久| 91国产伊人大香蕉| 一本色道无码DVD中文字幕| 亚洲色欲天天天堂色欲网女| 日本三级韩三级99久久| 老熟妇综合| 91n.欧美| 伦伦成年午夜免费视频| 大香蕉97久久| 亚码人妻| 后入美女国产| 国产精品3| 日本操逼视频免费| 免费a在线播放v| 欧美日本中字另类在线| 97超碰国产亚洲精品资源| 日韩黄片视频试看| 欧美夜夜狠| 超碰碰激情97+久| 日日干日日摸| 国产成人免费观看在线视频| 狼人综合婷婷激情四射 | 久久超碰97中文字幕| 婷婷精品久久av影视| 91大神精品长腿在线观看网站| 日本人人操人人操| 18岁禁 茉莉成人久久| 四虎在线视频| 中文字幕一区二区韩| 午夜免费视频1000| 啊啊啊轻点在线观看| 五月天婷婷在线看| 日韩三级一区| 国产久久久久久| 黄aaaaaaaaaaaaaaaaaa色网站| 蜜臀在线免费观看在线免费观看| 在线二区不卡| 久热九九| 日本精品一区二区三| 影音先锋乱伦资源| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 天天爽天天操| 快播久久人人aV| 91人妻做a观看视频| 99热aaa| 一二三区精品视频| 国产激情片在线观看| 久久伊人大香蕉| 中文字幕人乱码中文字的预防方法 | 亚洲精品久久久久久久久豆丁网| 区自美91| 欧美日韩国产三级黄色| 国产美女91视频| 神马麻豆福利院| 精品偷拍13p欧美dodk视频| 九色97| 密臀国产在线| JULIA一区二区三区在线播放| av情色影音| 精品人妻一区二区三区鲁大师| 国产成人手机视频激情| 日韩精品9区| 亚洲欧洲无码bt精品合集| 欧美在线视频99| 91天堂丝袜美腿| 日本视频一区二区三区| 色九九九九| 26uuu成人影片| 五月婷婷综合在线| 97天天| 国产精品秘 福利姬在线观看| 亚洲情色综合网| 先锋色眉乱伦资源| 欧美性爱网97| 沈阳熟女高潮对白视频| 日日黄色三级网站| 国产精品一区午夜福利| 做爱福利视频一区二区| 熟女激情综合网| 美女黄页| 免费成人在线观看91| 国产性感骚丝袜在线| 五十路熟女人妻一区二区在线观看| 天天综合色电影| 九九九九精| 天天操天天插| 亚洲一二三四区| 青青草原狼av| 青娱乐亚洲自拍| 99热这里只有是精品10| 久久精品亚洲成a人天堂| 色拍偷亚洲| 日韩探花精品在线视频| 极品少妇久久久久| 夜色五月天| 丰满人妻一区二区三区蜜桃视频| 打av高清| 亚洲 一区二区 自拍| 欧美亚洲清纯| 五月激情天| 国产精品视屏| 亚欧中文字幕在线视频| 亚洲AV无线| 欧美97网| 男人的天堂VA在线| 强奸乱亚洲| 国产丝袜啪啪| av操操不卡| 日本视频一区二区三区| 精品少妇高潮久久| 亚洲不卡av在线| av强奸乱轮| 中文字幕免费看| 亚洲。日韩。欧美| 色官网色综合| 色狠狠一区二区三区香蕉| 欧美图片偷拍| 一类无码操逼视频| 久久一区二区蜜桃| 91网站18在线| AAA久久| 精品999999| 亚洲欧美日产国产91毛片| 丁香色色网| 人人干人人操人人爱| 久久久久密臀视频| 激情综合五月婷婷| 日本精品无码三级网站| 92性色国产午夜福利在线661| 蜜臀av中文字幕| 男人的天堂2019AV| 日本一区二区三区四区免费观看| 酒色综合网| 色呦色呦色精品| AV 少妇 人妻 偷拍| 熟女这里只有精品6| 中文字幕av一区二区三区人妻少妇| 国产成人亚洲精品自产在线 | 久久久不能久久久久| 嫩草一区二区在线观看| 97精品网| 狠狠躁伊人中文字幕| 久久久∴| 国产a级精品| 久久婷色| 9色国产精品一区粉嫩| 性感美女91影视| 又摸又舔在线观看网站| 久久久一级| 91快色色色色色| 成人免费毛片| 操逼A∨| 精品9999| 九九九九九九九九九九九九九九九女| 超碰爽人妻熟女Av| 九九黄色网| 夜间福利片1000无码| 午夜小电影在线插入淫高潮| 欧美情色亚洲| 国产AV人人夜夜澡人人爽麻豆| 香一区二区三区| 丁香婷婷啪啪| 91精品国产高清久久久久久,亚洲成人| TS人妖另类精品视频系列| com 首页 18岁 禁区 女优 免费 精选 同城 | 超碰97人妻自拍| av久日| 插老姨肥穴| 人人喜人人妻| www.97在线| 99热免费| 婷色五月| 免费一级欧美片片线观看| 黄色av网站在线播放| 一区二区三区免费视频入口| 日本一级真人黄色性爱视频| 婷婷丁香激情| 狠狠干91| 羞涩视频| 国产精品点击进入在线影院| 久久精品国产AV一区二区三区| 亚洲综合九九| 日本精品五区| 2020中文在线一区二区三区| 欧美人与动性人交a| 操国产高清| 欧美激情区| 超碰欧美在线欧美| 精久久久| 骚鸭AV| 亚洲综人| 日本在线伊人啪啪| 欧美欧美啪啪视频| 乱伦一二三| 丁香婷婷五月| 97资源视频| 看全色黄大色大片免费视频| 在线中文字幕| 加勒比在线视频一区二区三区| 日本精品无码三级网站| 大香蕉久| 操操碰| 91校园春色长篇| 天天干天天干天天干| 日韩精品一二三四| 婷婷综合在线观看| 亚洲中文字幕日产无码久久| 色综合20p| 亚洲性综合| 久久线上视频免费看| 亚洲高清欧美总合| 国产精品爆乳懂色蜜乳| 操逼视频色| 精品国产www久久| 亚洲欧美中文日韩视频中国语| 美日韩成人| 亚洲夜色在线| 97伪v| 亚洲图片欧美另类综合免费视频大大香| 91高清日| 9999久久久| 強姦亂倫a| 国产吞精a级片激情电影| 婷婷综合在线| 国产高清不卡视频| 97欧美色| 日婷婷| 91 亚洲 欧美 日韩 国产 综合| 久久美女福利是上海美女| 国产精品一二三免费网站| 成 人 影视 一区 二区 三区 四区| 色超碰综合| 亚洲蜜臀精品视频久久| 青娱乐休闲视频在线观看| 日本一区视频在线观看| 深爱五月天| 2019AV天堂| 超碰 国产熟女精品一区| 诱惑网综合| 26uuu欧美日韩| 91一区二区| 国产青视频| 亚洲天堂久久| 日本色色视频网站| 性爱动态120秒| 97bbn| 少妇久久久久久久久| 亚洲精品尤物yw在线影院| 天天日天天色| 亚洲综合图片在线| 免费精品无码一级毛片牛牛影视 | 丝袜狠狠草尤物人妻av91| 道久久五香丁月婷婷激情综合| 天堂成人网| 美女国产一区二区久久| 怡红院视频在线| 锕锕好爽 死我在线观看| 亚欧高清| 久99久视频精选| 欧美最大综合网| 国产精品免费久久久久久久久久| 99热最新| 狠狠爱夜夜干| 奇米四色影视777久久久| 极品五月天噜噜| 无码二级三级| 人人干人人操人人..com| 欧美九九99久久精品| 97国产精品在线观看| 久久精品久久九九精品| 69视频福利导航| 少妇精品| 久99热| 九九人妻| 欧美亚洲日本视频久久久| 色婷婷综合久久中文字幕雪峰| 日韩电影中文字幕| aaaa少妇高潮大片| 2003天天干夜夜操| 黑人狂躁日本妞一区二区三区| 狼人综合婷婷激情四射 | 国产精品天干天干综合网麻豆| 18禁看网站一区| 亚洲中文字幕97久久精品少妇| 日日AAvv| 精品超碰国产| 好涩综合| 爱射综合| 久久久偷拍| 操逼日韩无码 | 91亚洲影院综合| 97日韩超碰超碰中文字幕| 性爱1区| 日夜尻逼网| 亚洲码专区| 激情婷婷丁香| 日本亚洲熟女视频| 亚洲素人综合| 亚拍在线| 日本Xx性爱| 青青草狠狠撸| 国模精品娜娜一二三区| 91 丝袜在线播放| 一区二区三区 丝袜 高跟 美腿| 国产一线二线三线av| 丁香六月综合激情| 国产精品久久久久久久久久久久| 欧美后进式| 亚洲加勒比| 无码一区二区三区四区五区六区七区八区九区十区视频 | 国产麻豆一区二三区| 欧美性爱一级操| 日韩有码回春沙龙第一页| 亚洲一本大道中文字幕无码在线| 骚熟女AV网| 欧美亚州手机在线| 日韩免费簧片| 天天内射| 欧美国产伊人久久久久| 97在线视频免费看| 99久久久无码| 亚洲熟伦熟妇AV无码春色| 屌妞视频久久久久久久久久久久| 免费观看国产不卡av| 日本精品久久久久久久| 性爱1区| 欧美狠狠干| 日欧美色| 青青操轻轻| 亚洲欧美碰碰| 和协影院中文字幕三区| www.色婷婷色综合| 一区二区三区国产在线播放 | 一区,二区,三区视频| 日韩在线性爱免费视频| 欧美丝袜亚洲| 嗯嗯啊啊操死我| av绯色| 欧洲自拍第一页| 欧美色图天堂在线| 国产在线视频二区| 91日韩网站| 日本999精品视频| xxx0国产在线播放| 久久中文色图| 8050午夜少妇无码| 亚洲性爱成人| 青青青草原| 久久色一区| 久操网无码在线| 人妻精品一区二区| 操死我了嗯嗯嗯| 亚洲无码99| 欧美不卡二区| 麻豆天美传媒毛片| 欧美极品色| 台欧久久精品视频| 色一情一乱一乱一区91Av| 91在线精品一区二区三区| 天天综合网亚洲综合网| 嫩草 人人网精品| 狠狠干狠狠干| 日本视频一区二区三区| 国产精品点击进入在线影院高清| av东京热男人的天堂| 日韩三级久久久| 亚洲制服欧美另类内射| 国内精品久久人妻性色av| 啊啊啊啊好疼| 久久夜精品一区二区三区| 97久久精品亚洲| 男女激情黄色网址| 欧美1区二区三区公司| 亚洲欧洲自拍| 18禁久久| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 2017大香蕉国产精品久久| 中文字幕在线观看丝袜| 亚洲AV秘 精品久久老牛影视| 亚洲无码超碰免费| 夜色91| 久久精品成人| 91熟女.com| 精品人妻一区二区三区夜夜| 美女高潮视频91| 天天综合精品| 成人性爱av.com| 吖在线不卡一区二区国产剧情| 国产9l 大屁股| 亚洲影视高清第一页| 欧美日韩亚洲电影| 国产AV人人 夜夜人人澡| 四虎影库国产精品免费| 人妻AV 中文字幕的| 六月婷婷综合| 日韩免费看黄片| 久操在97| 欧美色图亚州激情| 国产人伦精品一区二区三区 | 秋霞免费AV| 黄色大片免费在线| 四虎国产精品永久入口| 欧美日韩国产成人高清| 一级做受视频免费是看美女| 人妻精品视频一区二区三区| 精品福利| 日韩性爱啪啪视频| 999久久久免费精品国产牛牛| 啊啊啊爽爽| 91欧美www| 天天日夜干| 久久区| 99人妻| 国产高清视频无码在线| 久久久久久99AV无码免费网站| 男人的天堂 在线一区| 性色亚洲| 精品国产无码中文| 2020中文在线一区二区三区| 26uuu偷拍亚洲欧洲综合| 日韩欧美综合激情| 欧美精品自慰系列寂寞少妇| 婷婷久热| 一区二区三区精品黑丝白丝酒店对鸡| AND人妻系列| 欧美亚洲第1页| 亚洲自拍另类丝袜综合| 欧美日韩亚洲电影| 96一区二区三区| 中国熟妇| 粉嫩av在线| 日韩性爱视频在线免费观看 | 欧美成人国产精品| 韩国毛片一区二区三区| 夜夜久久久| 97超碰色色| 日韩三级在线观看网站| 无码免费精品高清| 五月丁香成人网| 九九热男人天堂| 国产一区二区久久| 亚洲色图 91| 国产女人视频三四五区| 做爱A级亚欧| 伊人五月天| 日韩人妻资源网| 亚欧中文字幕在线视频| 天天影视综合色| 丝袜亚洲综合| 隔壁邻居波多野结衣中文字幕 | 18禁在线视频| 亚洲精品中文字幕一区在线视频 | 无码一区二区三区四区五区六区七区八区九区十区视频 | 精品 码产区一区二-1080P高清在线www-B029AV | 国产97免费视频| 伊人五月天婷婷| 男男H黄动漫啪啪无遮挡网站| 蜜桃视频精品一区二区| 日本东京热大香蕉a片| 熟妇女伦乱视频视频| 久久久久久人体| 亚洲 日本 国产 综合| 激情专区综合| 欧美狠狠鲁| 97碰碰色| 日韩精品人妻一| 大奶啊啊好爽 | 色网1| 男人天堂2017| 性色av婷婷久久一区二区点复制| 中文字幕亚洲欧美在线不卡| 乱操9999| 97超碰亚洲| 无套后入双马尾| 欧美性爱免费短视频| 亚洲欧美一区二区三区在钱蜜桃 | 色综合一区二区三区| 嫩草在线视频| 国产黄a三级三级三级av在线看 | 精品女人999| 国产精品第一页国产大屁股视频免费区i| 欧美第一页| 超碰人人色| 狠狠亚洲| 97这里有精品| 日本精品一区二区中文字幕| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 四季av一区二区凹凸精品小说| 久热影视| AND人妻系列| 九九热av| 色情婷婷| 美女天天干| 黄色AAAAA欧美| 妇女视频网站| 国产成年女黄特黄| 屌色在线97视频| 九九九九九九九九九九九九九九九女| 久久天天艹| 日本不卡高清免v欧美日韩在线观看| 91久热| 亚州操逼网| 天堂亚洲精品久久老牛| 熟女激情综合网| 超碰爽人妻熟女Av| 亚洲97综| 男人的天堂亚洲| 婷婷久草| 欧美日韩插逼视频| 精品国产一区二区三区久久久蜜臀 | AV免费在线播放一区| 国产久久久久影院老熟女| 欧美大香蕉久| 96免费视频在线| 国产二区视频在线观看电影| 色第一页| 午夜男女爽爽爽影院视频| 日本天堂网| w w w.久久精品| 日本有码影片下载 | 艳美熟妇先锋一二三区| 黑人精品XXX一区一二区| 国产欧美一区二区| 手机午夜电影神马久久| 成人日韩中文字幕| 无码人妻一区二区三区色欲aⅴ| 9 7超碰在线免费观看| 亚洲啪啪视频免费| 亚洲蜜臀懂色| 手机在线人成免费视频| 伊人在线大香蕉视频久久| 国产尤物AV尤物在线观看不卡| 丰满欧美放荡少妇在线| 国产亚洲国产超碰| 97视频播放| 四虎影视在线| 黑人美精品 A片| 国产白丝在线| 蜜桃无码AV一区二区| 97精品人妻一二三四| 精品久久99| 欧美AB在线| 亚洲丝袜天堂| 岛国毛片手机在线观看| 天天久久久久久| 亚洲综合97中文网| 乱操乱伦AV| 亚洲综合色在线| 91超级碰| 久久精品人妻一区| 欧美在线 亚洲| 青青草在线成人视频| 日本九九久久99| 97一本大道亚洲一区| 激情综合五| 偷拍三区| 日本黄色精品| 久久国产对白激情浪潮 | 91在线视频免费播放| 国产精品对白自产拍| 好湿好紧好爽 视频| 自拍偷拍 高清无码| 婷婷五月花| 欧美激情久| 开心五月激情网| 91狠狠综| 亚洲午夜蜜臀| 久久大香蕉手机高清| 久热香蕉精品在线视频| 9999久久久| 97超碰人操| 97在线精品| 日韩99999| 亚洲日韩肥臀视频在线观看| 久草电影网| 免费观看的黄色的网站| 物业黑人 AV一区| 久草福利在线资源站| 欧美九一精品久久久熟妇| 另类一区| 91中文字幕制服丝袜免费视频| 激情综合婷婷| 伦理日韩国产久久| 免费超碰97久久| 婷婷四五区| 精品无吗久久| 婷婷深爱五月| 国产午夜福利电影免费在线观看 | 久湿久久 | 国产亚洲精品久久久久小| 丰满人妻一区二区三区免费| 久久久九| 岛国天天午夜影院传媒网| 国产中文字幕在线| 久热精品在线| 果冻传媒A片麻豆熟妇人妻| 亚洲美腿丝袜香蕉影视欧美成人| 午夜福利合集| 天天亚洲| 欧洲黄色网| 久久精品中文字幕观看| 日本视频在线观看污污污| 久久一区二区三区入口| 伊人色综合网| 日本一片一区| 欧美色道啊| 美女久久久| 国产一区免费午夜视频| 一级黄色视频网| 十八禁啪啦拍视频无遮挡| 九九成人视频| 欧美97视频| 97超碰色色| 少妇高潮对白在线观看| 久久综合婷婷| 亚欧美综合网。| 亚洲天堂男人网| 国产精品美女在线一区| 天天综合91在线| 91欧美综合在线| 国产主播福利| 五月大香蕉| 免费超碰97久久| 台湾佬中文娱乐网久久久久久久久久com | 国产自偷| 国产高清26uuu| 九九九久千久久激情蜜桃在线看 | 国产高清在线观看欧美| 欧美不卡在线美女| 久久综合97| 十八禁啪啦拍视频无遮挡| 1000午夜黄色| 亚洲一区日韩精品| 夜夜高潮夜夜爽高清视频一 | 亚洲天堂资源网| 亚洲αv一区二区三区| 2000亚洲男人天堂| 亚洲无无码αⅴ每日更新| 亚洲天堂色图| 亚洲婷婷丁香在线| 人人操 欧美| 久久久久久中文字幕中文字幕最新| 91 手机在线播放 绯色| 九九色精品| 亚洲精品视频在线播放| 可以免费观看的av| 麻豆AV一区二区| 韩国一级婬片A片AAAAA| 亚洲一区日韩精品中文字幕| 日韩中文字幕2020| 艹比视频国产精品| 一本一道久久综合久久| 日本三级黄页| 91丨九色丨国产丨人妻在线 | 91亚洲欧美综合高清在线| 少妇啪啪自拍| 69AV女优男人的天堂| 日韩9999| 久久久96| 久久久久精| 都市激情人妻一区二区青青操视频| 99啪啪视频| 国产精品青草综合久久| 中文字幕,人妻,日韩| 国产97视频免费观看| 五月天婷婷基地| 欧美综合自拍亚洲综合图| 成人三级片无码| 国产白丝精品在线观看| 欧美性天天影院| 国产精品 亚洲情色| 欧美成人一级免费电影| 91另类| 伊人96在线| 欧美se亚洲| 人人天天欧洲| 天天干天天操天天干天天操| 操碰97| 97日亚洲欧美| 骚货 中文字幕 av| www.AV有限公司一区| 日本一区三级韩国| 国产操伦| 男女日B国产| 免费一二区| 久热热| 大香久久| 91观看 国产白丝| 九九精品网| 不卡在线观看视频| 欧美亚洲特P| 欧洲亚洲少妇| 久久精品无码专区| 亚洲大色堂| 国产美女激情| 97视频在线视频| 九九九精品一区二区无码| 亚洲熟女一区| 久久久精品久久| 精品十八在线观看| 亚洲黄色电影| 天天影视色香欲综合网小说| 亚洲无码com| 亚洲av综合色区图片亚洲| 国产a片操逼| 一个人免费HD91视频| 精品少妇一区二区三区在线视频| 日本污ww视频网站| 麻豆蜜桃视频在线观看| 这里是精品| 欧洲亚洲综合| 九九九九精品视频| 国产一区二区三区久久久精品| 日韩A优精品在线观看| 成人日韩欧美| 免费9 1久久| 丝袜加勒比| 性色A∨91| 亚洲欧美一区二区网址| hd成人一区二区在线| 精品久久久久久亚洲| 久久大陆| 天天综合-91入口| 欧美人妻久久精品二区三区| 青青草日本无码| 偷拍2020| 亚洲欧洲日本精品中文a∨| 久久免费精品视频免一| 密臀在线免费观看| 四虎影视国产精品| 3D污黄视频在线观看| 亚洲精品97在线| 精品玖九九久| 99色色网| 国产AV久久野战精品| 亚洲自拍另类丝袜综合| 久久大香蕉| 性做久久久久久免费观看软件 | 99热99re6国产在线播放| 五月天婷婷小说| 亚洲综合激情五月久久| 国产AAAAAABBBBB| 抽插一区二区视频| 男女真人网18| 欧美日韩中文字幕人妻| 91性高| 亚洲一本色道中文无码aV天美| 精品成人女人久久| 国产精品无套内谢| 国产后入内射| 免费作爱一级视频| 国产外初女出血视频| 夜夜爽夜夜高潮夜夜爽| 久久手机视直播| 成人片视频| 久久精品—区二区三区内射| www久久精品| 国产精品不卡一区二区三区av| 深夜激情无码| 精品国产乱码久久久影院| 色婷婷丁香五月| 干少妇视频| 天天综合网~91综合网| 亚洲综合中文字幕有码| 欧美激情 一区| 密臀在线免费观看| 色综合V| 日本天堂网| 牛牛aV| 日本色色色网站免费看不卡| 大香蕉一人在线| 久久久九九网站| 性饥渴少妇av无码毛片| 99蜜月精品久久| 欧美久久婷| 丁香九月婷婷| 亚洲无吗在线视频| 久久男人的天堂| 骚鸭AV| 天天天天天天天天综合| 五月丁香六月婷综合成人综合 | 岛国网址国产| 蜜臀久久99精品久久久久| 青草园大香蕉| 国产av热热色| 久久久久久久久久久久黄色 | 精品女人999| 欧美性爱另类综合| 中文字幕日韩人妻视频一区二区三区 | 精品一区二区三区蜜桃臀赵总 | 国产少妇肉丝在线观看| 亚洲第一在线视频| 99国产在线 精品 视频| 国产毛片片精品天天看视频 | 国产又黄又粗的视频| 色综合av综合久久| 羞涩视频| 日本中文字幕不卡视频| 家庭乱伦麻豆| 国产一区二区三区高清视频| 伊人久久亚洲色欲综合网站 | 日韩中字av一区| 99re6久热只有精品6在线直播 | 亚洲欧美经典一区二区| 久热久| 亚洲欧美大| 色哟哟-国产专区| 330Dv国产女人终合视频极品人与兽| 九九久久一区二区三区| 欧美伦乱爱| 久久国产精品视频| 深喉吞精| 国产区日韩区在线观看| 欧美天天综合在线| 欧洲久久一二线| 久操网视频| 久久久久久久久国产| 伊人991| 一类无码操逼视频| 美女黑人91神马| 免费一级特黄特色大片在线观看看| 国产久久一区二区三区野外在线| jizz啪啪| 色情婷婷久久五月天| 国产Aα| 龙兴卡官方查询| ji熟女.com| 蜜臀在线免费观看在线免费观看| 一二三区精品视频| 六六久久日韩不卡| 中出人妻中文字幕91在线| 国产高清午夜成人在线观看| 午夜一区| 美熟女逼导航AV操逼| 很黄很色的视频在线观看| 久久中出在线| 人人爱人人乐人人操| 免費黃色視頻觀看一| 天天欧美欧美亚洲网| 9999久久久久| 国产理论视频在线播放| 国产99久久99热这里只有精品15| 日韩精品中文字幕人妻| 久久久久亚洲av综合波多野制衣| www.超碰在线| 色噜噜狠狠色综无码久久| 96精品一区| 欧美女同在线| 在线岛国新天堂8| 国产有码一区| 91在线视频国产网站| 日韩在线观看字幕精品| 打av高清| 亚洲人妻中文在线视频| 啊啊啊啊啊好多水| 亚洲天堂7777| 99999精品视频| 噜噜噜亚洲精品| 一级日本牲交大片好爽在线看| 十八禁啪啦拍视频无遮挡| 清柠毛片| 色哟哟av网址| 在线观看不卡一区二区三区| 一级黄色影片| 日本超碰97日韩精品人妻| 做爱A级亚欧| 欧亚成人在线视频| 亚洲女毛多水多21P| 欧美丰满少妇交换91欧美精品| 精品人妻1区| 亚州人妻| 亚洲一区二区三区AV无码 | 亚洲AV无码黄色强奸| 精品女同一区| 久久久久性熟视频| 女同女同恋久久级三级| 九九超碰综合网| 久久久久久久78| 青青草天天亲夜夜操网| 久久久久久久| 性色av一区二区| 中文字幕高清20页视频| 久久精品中文字幕无码l| 中文字幕激情小说| 校园春色综合香蕉| 亚洲精品视频在线播放| av网站免费看| 变态另类专区| 天天综合网合集91| 国产久久一区二区三区野外在线| 自慰白浆在线观看| 国产精品网址| 91五十路| 综合五月天| 99re视频在线播放青草| 日本天堂在线播放| 人妻素股| 亚州国产成人精品女人久久| 五十路二区在线 | 97色色国产视频| 最新一二三区视频| 91蜜臀在线久久久久| 无码9区| 国产原创自拍| 女人午夜视频777| 九月婷婷综合| 又大又黄国产| 一区二区三区 丝袜 高跟 美腿| 五月丁香网站| 午夜色婷婷| 成人性爱av.com| 成人免费福利网站国产| 国产精品无码在线| 五月天婷婷色| 爱爱动态试试看6 0秒| 熟女自慰久久久| 欧美中文狠| 高颜值美女口爆高潮浪叫| 搡老女人老熟女91老熟女综合网| 91欧美亚洲| 中文字幕日韩电影人妻| 精品人妻av在线播放| 日本人妻A片成人免费看片| 亚洲图片 91| 狠综合网| 天美91| 综合在线导航一区| 九月丁香婷婷| 精品婷婷| 黑人粗大V S日韩女优视频| 久久久啊啊啊| 国产日逼视频| 91大胆欧美| 亚洲一二三四区在线免费看视频| 黑人综合网| 亚洲人妻中文高清| 97天天综合网| juliaann丝袜| 无码抄逼网| 99黄页网站| 日韩熟女操逼| 91超碰人人| 91白虎| 久热伊人| 999国产精品999久久久久久| 天天操天天干一区二区| 中文字幕丝袜美腿| 97超碰护士| 久久久久成人蜜桃精品| 久9爱精品| 六月丁香久久| 99热这里只有精品1| 18禁超污无遮挡无码免费网| 欧美永久激情一区二区| 97在线视频观看免费| 最新国产亚洲精品精品国产亚洲综合| 熟妇艹鸡八| av在线免费一区二区| 一区二区娱乐网站| 夜色综合| 草蕉影视亚洲无码| 国产多人在线观看视频| 久久久久9999妇女| 欧美日韩国产高清在线一二三区| 2000亚洲男人天堂| 午夜啊啊啊| 防屏蔽在线视频| 亚洲色阁| 伊人伊人LD| 欧美麻豆成人同性GⅤ在线| 激情内射| 丁香五月影院| 国产操逼网站亚洲一级黄色| 久视频在线观看| 91久久免费视频互動交流| 亚洲老司机123专区| 一区二区三区美女超清| 99热aaa| 欧美日韩香蕉| 香蕉精品二区二区| 人人妻人人操人人乐| 日韩性爱人人爱人人操| 丝袜足交视频| 啊啊啊啊啊操我视频| 亚洲日韩电影| 欧美亚洲se91| 最新日日夜夜天天干干| 一本色道人妻久久| 老熟女熟妇| 福利伊人玖玖国产| 欧成人在线| 欧美综合色站| 色欲av一区二区三区蜜芽| 99精品无码| 国产女人和拘做爰视频 | 影音综合网| 欧美激情综合色综合啪啪五月| 亚洲91在线播放影院|