国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成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()三步走來(lái)復(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ù)錘煉出來(lái)的模型基礎(chǔ)設(shè)施層。它解決的從來(lái)不是“能不能跑起來(lái)”而是“能不能穩(wěn)、能不能快、能不能準(zhǔn)、能不能省”。我?guī)н^的幾個(gè)項(xiàng)目組從某高校實(shí)驗(yàn)室的遙感圖像分割小隊(duì)到某公司邊緣端人臉識(shí)別模塊重構(gòu)無(wú)一例外都在第三周左右主動(dòng)棄用 torchvision 的預(yù)訓(xùn)練加載邏輯全面切到 timm。原因很實(shí)在torchvision的pretrainedTrue實(shí)際只提供 ImageNet-1k 上的單點(diǎn)權(quán)重且模型結(jié)構(gòu)固定、不支持動(dòng)態(tài)分辨率輸入、無(wú)法一鍵切換歸一化參數(shù)、更不提供訓(xùn)練腳本與評(píng)估指標(biāo)對(duì)齊而 timm 里一個(gè)create_model(convnext_base.fb_in22k_ft_in1k, pretrainedTrue)調(diào)用背后是完整的權(quán)重來(lái)源標(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無(wú)縫對(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)差、無(wú)歸一化、不同輸入尺寸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)重來(lái)源是 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ī)制還帶來(lái)一個(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)練來(lái)源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)重來(lái)源清單你甚至無(wú)法確認(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)差直接來(lái)自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)無(wú)法訪問 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)文件無(wú) 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)建無(wú)權(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 確保無(wú)遺漏 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ú)家避坑技巧——來(lái)自 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()中過濾不要相信“看起來(lái)一樣”用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若無(wú)法升級(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/無(wú)文件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無(wú)增強(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確保無(wú)信息損失torchvision 無(wú) 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)定性來(lái)自于對(duì)協(xié)議的理解而非對(duì)版本號(hào)的迷信
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
伊人嫩草| 91色欧美| 色蜜AV| 成人无码在线视频网站| 深夜激情 | 日日日啊啊啊| 午夜天堂精品久久久久91| 影音先锋新男人| 天天干夜夜操一区二区| 职场同事知名国产国产精品久久欧美日韩 | 奇米四色影视777久久久| 午夜啊啊| 99热在线只有精品| 九九国产热| 美女诱惑爱爱| 日本在线一二| 激情丁香婷婷| 青青草视频在线观看一区二区| 欧美东京热精品A∨| 人妻精品一区二区| 精品十八在线观看| 日本熟妇色熟妇在线视频播放| 亚洲色图在线视频| 亚洲精品99| 欧美性爱无码一区二区三区| 岛国毛片在线观看免费| 久久AV无码AV| 日韩一级二级三级在线不卡观看完整| 亚洲九九视频| 欧美性视频二区三区| 天天看少妇| 久久性爱城| 99这里只有精品国产| 97久操| 黄色片G G G| 中文有码第五页| 色999人与兽| 久久久久国产精品片区无码直播| 深夜啪啪啪视频免费| 极品色社| 天天操熟妇| 久久日本熟妇熟色高清| 久久超碰爱| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 日韩精品操少妇| 日日黄色三级网站| 天天澡天天爽日日av| 一区二区精品更新提醒| 97在线欧洲| 99操| 综合色一区三区二区| 后入日本1234| 99re视频在线播放青草| 亚洲色宗合| 超碰97人妻| 免费自拍三级综合| 狠狠综合网| 91美腿丝袜在线观看| 免費人妻夜夜爽天天爽爽一区| 99精品网站| 激情黄色五月天| 职场同事知名国产国产精品久久欧美日韩 | oumeisetu综合| 亚洲精品蜜桃久久久一区二区三区| www.97在线| 麻豆影音天美视频| 热G综合热G中文| 欧美78P| 日本阿v天堂在线观看| 久久久久久精| 操人无码| 亚洲日本大香蕉1| 亚洲午夜精品久久久中文影院| 久久久久夜夜夜夜| 一区二区三区黄片免费观看| 亚洲五月天激情| 日本一区二区三区精品| 插入粉嫩少妇视频| 不卡av免费在线网址| 国产熟女完整版中字| 亚洲午夜免费狠狠干| 91撸色网 玖玖网 欧美| 色色九区| 色综合久久88色综合久久天天| 亚洲精品三| 欧美久久毛片基地| 极品色| 欧美十八禁视频| 日本欧美国内在线| 97超碰免费人人性爱| 欧美精品系列| 欧美精品亚洲精品日韩传电影| 国产大片精久久久久久| 青青操日韩| 26UUU欧美日本| 亚州AV无码国产精品| 老女人爆菊| 欧美1区二区三区公司 | 青青草精玖玖69精品| 夜夜国自区| 在线播放成人高清免费视频| www.婷婷| 久久久啊啊啊| 人人操人人狠狠操| 青青草原成人| 去干网最新版| 日韩色女精品| 午夜福利视频在线一区| 青娱乐手机日韩在线视频| 78久久| 婬女免费一二三区A片| 自拍视频大全亚洲专媒视频/一区二区三区| 99热这里都是精品| 日本色色色| 老熟女网站| 亚州九九九精品视频| 天天综合-91入口| 久热香蕉精品在线视频| 99黄页网站| 国产精品高潮久久久无码| 手机看片1025| 九九九九九九免费视频| 亚洲综合97中文网| 国产v片在线免费观看| 婷婷久草一区二区三区| 欧日韩一二三f区| 国产高清26uuu| 精人妻无码一区二区三区伊人直播 | 啊啊啊啊啊在线观看网址 | 天天躁日日躁AAAXX| 风月影院男女十八禁| 欧美 日韩 亚洲 春色| 日本在线播放不卡一区| 久操网无码在线| 真实高潮91| 日韩内射视频| …亚洲黄色厕厕女女在线播…| 91精品国久久久久久无码| 超碰诱惑| 无码高清专| 日韩综合无码色欲vv| 91爱看| 国产精品久久久久久 百度| 免费人人搞97| 三级特黄60分钟播放| 美腿丝袜高跟网免费视频免费视频| 日本黄大片在线观看视频| 神马午夜久久久| 大奶啊啊好爽 | 青青爽| 中文字幕日韩专区精品系列 | 亚洲图片欧美色| 国产自产91区13区| 日韩AV一起草| 日韩熟女操逼| 久久精品国产97欧美精品亚洲| 性爱视频久久| 午夜亚洲国产理论秋霞| 欧美日韩中文字幕人妻| 99精品久久久久久| 日韩性色b| 亚洲天堂五月天国产| 少妇精品久久久八区九区| www.超碰在线| A片A5445444| 骚逼自拍99| 婷婷伊人綜合中文字幕小说| 日欧亚洲二三区大片不卡| 在线 欧美 亚洲| 理论久久婷婷网 8| 51一区二区三区| 女性91网站| 青青草乱入乱欲视频在线观看| av天堂手机版追回| 综合影院永久入口国产| 91丰满| 激情小说亚洲视频| 欧美 青青草| 91精品丝袜在线观看| 2020久久免费视频| 色图四区| 九九九成人| 99精品网站| 色蜜AV| 日本一级二级三级网站| 艹精品| 91免费看一区二区三区| 蜜区区视频79 | 东北女人无套内谢视频| 婷婷探花久久精品一区| 欧美成人色| 伊人网av| 色色婷| 成人性爱av.com| 免费a v| 国产精品另类一区大香蕉| 欧美曰韩国产精品| 亚州 综合 色图| 亚洲图片视频小说| 嫩草黄页| 偷拍亚洲视频一区二区三区四区| 是还免费视频1727我| 啊啊啊啊啊在线观看网址 | 极品一区二区三区免费| 射丝袜大香蕉| 欧美91久久久久| 色老牛| 综合欧美日韩在线| av东京热男人的天堂| 午夜成人福利影视| 99精品久久久久久| 老熟女综合网| 91性感在线| 日日夜夜骑| 亚洲成成熟女人综合一区二区| 人妻天天爽夜夜爽2| 日韩激情视频| 亚洲AV不卡在线观看尤物| 欧美久久久15P| 91AV入口| 中文字幕视频在线观看一区二区| 99999国产精品| 色综合1991| 久久久久深夜无码| 久久久78| 精品午夜福利| 手机在线视频国内精品| 天天日夜夜爽| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 亚洲狠狠入| 日本幼女18+| 91亚洲色图| 色欲天天综合久久久无码网中文| 亚洲性爱乱操x| 国产女人高潮嗷嗷嗷叫小说| 国产无码一二三区| www.激情| 亚洲老司机123专区| 密臀国产在线| 国产精品又黄又猛又粗| 久久精品国产亚洲AV无码电影| www色日本| 久久久久久久久久8888| 91新在线欧美| 亚洲综合首页| 99在线无码精品秘 入口黑人| 婷婷五月天久久久| 日韩久久超碰色| 亚洲情色一区二区三区| 日本幼女18+| 日韩成人私密一级精品av| 牛牛操视频逼| 玖玖综合.com| 中文字幕无码不卡啪啪| 久久在线观看免费视频| 欧美在线观看综合国产| 亚洲人成色9999精品久久| 亚洲区 欧美区| 91视频成人福利网站在线一区| 大吊色| 国产视频小说| 熟妇乱伦一区二区| 超碰九色| 亚洲综合夜色| 久久的免费性爱视频| 99久久久er直播网址| 欧美美女自慰一区二区三区| 综合少妇网| 国产一区二区三区白丝| 日韩久久三区| 91n处女在线观看| 91人精品妻入口| 天天爽天天干| 好涩综合| 色婷五月| 操老熟女AV| 一个国产在线综合网站| 久久综合久久综合人久久夜精品| 四虎免费在线播放| 91天堂色男人的天堂| 亚洲色性情三级| 蜜屁av| 男男H黄动漫啪啪无遮挡网站| 尻女朋友一夜| 无码人妻一区二区三区免费九色| 精品视频久久久久九九九九9999| 亚洲男人天堂2| 白丝被操91| 青娱乐av在线| 人妻偷拍一区二区三区| 久久偷拍人| 91强热人妻| 都市激情人妻一区二区青青操视频 | 天天操天天干一区二区| 亚洲av热热色| 三级日韩一区二区三区| 奸色色 男人天堂 天天射| 9997se| 温婉少妇玩3p| 久久人体一区二区| 91婷婷| 97在线视频网站| 超碰国产在线| 日本天天干天天操一区| 亚洲激情综合| 天天射日日干| 亚洲欧美另类少妇精品| 中文字幕亚洲热播人妻| 欧美日韩中国x| 久久东京国产精品视频| 久操免费在线| 国产性刺激| 无码直播久久久| av午夜玫瑰| 国产又黄又粗的视频| 久久亚州高清| 欧美一级国产一级| 久热网| 99无码视频| 碰碰97| 超碰98综合网| 亚洲另类电影| 很很操在线| 97久久免费| 久久6热视频免费观看| 久久日韩肥臀| 一区二区三区四区久久视1| 午夜理论片在线观看免费| 成人开心网在线视频| 欧美精品99久久久| 午夜.DJ高清在线观看免费7 | AV一区观看| 校园春色欧美| 精品人妻二区三区| 国产精品熟女丝袜一区二区| 午夜αv| 久久999久| 婷婷尹人大香蕉免费| 婷婷午夜成人色中色| 亚洲AV麻豆Aⅴ无码电影一| 欧美一二三区四五区| 欧美国产欧美在线观看| 91殴美| 亚洲人妻熟妇三十三区| 欧洲精品一二三在线| 中文字幕国产在线天堂| 人妻精品一区二区在线| 日韩一区二区精彩视频| 91高清欧美| 日韩超碰精品综合| 男人的天堂不卡一区二区 | 亚洲综合中文字幕有码 | 久久久久久久一级黄色打同平台| 色网在线视频观看免费| 97AV在线观看| 国产日韩美女小穴视频网站不卡| 亚洲精品蜜桃久久久久久久| 亚洲天堂东京热| 黄色片大香蕉| 中日韩久久久| 岛国福利在线精品播放| 亚洲国产精品无码AV久久| 国产三级中文字幕粉嫩| 伊人四虎综合| av一区二区三区四区五区久草臀| 2001天天操| 91爱做| www.男人天堂| 日本三级久| 久久久久亚洲Aⅴ无码| 色图综合网| 亚洲色图日韩丝袜制服一区二区五月在线| 亚洲成人精品久久久| 精品一区二区三区四区外站| 中文字幕精品一区欧美| 日韩操啪| 国产精品999aaa| 蜜臀久久99精品久久久久久酒店| 人人妻天天做天天爽| 精品国产72| www.婷婷| 麻豆人妻精品一区二区| 午夜精品久久久久久久男人的天堂| 高清无码 国产精品| 四虎午夜影院| 精品人妻1区| 婷婷伊人五月| 高清国产无码av| 午夜精品久久一区二区| 亚洲情色欧美| 91精品国产一区三一| 欧美精品系列| 欧美线天码中字| 校园春色家庭伦理欧美激情| 色哟哟av网址| 超碰在线1234区| 九七毛片九九毛片 | 精品人妻一区二区蜜桃视频| 天天影视综合色| 欧美色图片欧美色图| 亚州欧美一区| 夜夜高潮夜夜爽国产伦精品| 久久激情视频| 欧美激情在线观看视频| 久久久91| 亚洲日韩精品久久久久一区壹牛 | 8050无码八戒| 九月丁香| 中文字幕 一区二区 亚洲无码| 又大又黄国产| 日韩欧美被操黄免费观看| 精品少妇999| 综合97| 毛片久久| 婷婷AV一区二区三区| 婷婷五月天成人| 伊人991| 乱伦色图网址是多少| 国模私拍一区二区三区神乳| 无码人妻丰满热妇又大又粗| 欧美大香蕉卡久久| 成人精品水蜜桃久久久久久久| 99最新日韩偷拍视频| 蜜臀AV一区二区三区| 啊啊啊啊啊在线| 国产男女边吃边摸视频网站| 啪啪啪综合网| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 日韩三级性| 91天堂色男人的天堂| 欧美精品成人亚洲| 午夜后入| 60秒不遮不挡| 欧美性爱中文字幕无线码| 激情综合色| 75大香蕉| 99999精品| 91呆哥人妻| 午夜欧美J进J出白浆流出久久久| 国产青青综合伊人| 亚洲三区视频| AV天天综合| 激情婷婷丁香网| 777琪琪午夜免费A片| 99∨VTV| 日韩精品国模| 国产乱伦亚洲色图高清无码| 91一区二区| 免费成人在线熟妇网| 超碰97久久| 色色色网站| 青青伊人加勒比海| 可能人人看人人摸| 欧美色997| 色妇综合网| 国产精品视频精品一二| 大香蕉92| 欧美性爱中文字幕无线码| 天天干天天日天天射黄色大片| 久久久一二三四区| 国产精品久久久久久片| 国产一| av天堂精品久久| 曰韩香蕉97| 国产福利电影| 日韩熟女精品无码专区一区二区| 麻豆成人影音在线| 狠狠色色| 麻豆成人AV| 韩国三级理论在线| 欧美成人国产精品| 午夜电影在线观看无码专区| 日韩电影天堂视频一区二区| 日韩激情电影中文字幕| 91蜜臀熟女| 78m啪啪啪| 婷婷久久大香蕉| 亚洲有薄码区久久在线一区| 日本性爱不卡视频| 久久是精品| 99久久e免费热视| 91AV天堂| 亚洲精品日韩国产欧美| 另类成人首页一区| yaouchengrenav| 成人在线视频一区| 欧美日韩精品青青| 色婷婷亚洲婷婷| 亚州综合在线| 日日天天久久啊啊aaa| 国产又黄又爽| 98精品国产乱码久久久久久| 操高情无码| 亚洲自拍青操视频| 精品丰满人妻一区二区三区免费观| 97在线观看| 亚洲图片欧美制度| 狠狠色狠狠色狠狠五月| 欧美少妇高潮| 快点操死我| 人人摸.人人色| 少妇高潮喷水无套久久久久久| 国产在线精品偷| 国产精品乱码久久| 免费啊啊啊| 青娱乐日韩无码| 久久久久久9| 二三四区精品| 激情综合五| 北约熟女超碰| 麻豆亚洲AV成人无码久久精品| 亚洲青青青视频在线| 强奸乱伦大香蕉| 亚洲性爱成人| 爆操无码| 国产乱伦视频污| 天美一区在线| 旡码电影特区| 国产三级日产三级韩国三级| 激情小说在线视频| 久久久久国产精品人妻aⅴ天堂| 五月天开心网| 这里只有精品视频在线观看麻豆| 精品人妻一区二区三区不卡断 | 精品伊人久久久大香线蕉小说| 午夜九九九九九九| 色麻豆AV| 亚洲AO在线| 亚洲色综合| 午夜一区二区三区国产| 久久专区| 欧美激情内射| 日韩 欧美 国产 麻豆| 混色激情av| 国产成人在线观看综合| 91午夜无码| 日韩电影在线观看网址| 欧美色91| 欧美黑人与女人91| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | sewuyueav| 碰超人人在线一区二区三区| av在线人气| 最新欧洲欧美日本激情网站| 天天色播亚洲综合网站| 日本性爰一道本| 草草草视频在线免费看| 亚洲日韩美女丝袜美腿人妻视频| 日韩本不卡视频在线观看 | 亚洲人在线成线成人| 久久综合婷婷| 激情综合五| 自拍偷拍 日韩无码| 一区二区三区黄片免费观看| 伊人五月天婷婷| 欧美日韩在线小说| 97色碰| 免费视频97| 香蕉99秘 一区精品蜜桃臀| 国产在线激情| 99少妇| 日韩在线观看AV| 国产视频97| 操啊国产| 中文乱码字字幕在线第5页| 射久久| 一起草在线视频| 色婷婷国产精品一区在线观看| 2017天天操| 后入国产| 老司机午夜精品视频| 人人人摸人人| 亚洲一级性爱视频免费看| 日本熟女免费視颖| 激情小说成人日本无码一| 熟女人妻一区二区三区| 色色色色网站| 国产按摩一区二区三区| 亚洲伊人久久精品狠狠在线| 大香蕉伊人在线成人AV在线观看| 新视频sss国产| 狠狠2050在线观看| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 国产亚洲日本| 麻豆区久久久久亚| 中文字幕视频在线观看| 日本视频在线中文字幕| 日逼视频日本| 色婷婷电影网| 男人干美女| 青青伊人加勒比海| 欧美姓爱综合网| 亚洲人成网站7777| 夜夜影视四色| 91是天天| 国产女人9999| 97九色| 国产精品嫩草影院免费| 97在线精品| 亚洲色图欧美色图制服丝袜| 免费看国产大AB| 欧美91变态| 蜜乳AV一区| 日本精品一区三区| 蜜桃视频一区二区三区| 中文字幕人妻丝袜乱一区三区| 人人么人人操| 亚洲色图亚洲无码强奸乱伦| 爆乳免费黄网站| 91丨精品丨国产丨丝袜| 人人操人人93| 色色婷婷丁香| av一区二区三区四区五区久草臀| 91美女视频。| 欧美一区二区观看在线| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 中文字幕视频2区| 国产97综合| 亚洲av综合伊人久久| 大香蕉综合| 97爱碰| 国内偷拍精品一区二区| 免费一级视频特黄色大片| 啊啊啊啊操死我了| 欧美精品宗合| 九九精品热| 久污| 蜜乳Av成人片网站| 丝袜喷水在线| 97天天摸天天爽| 国产精品视频精品一二| 91真人天天在线| 台湾一区国产高清在线| 亚洲91少妇| 日本不卡免费二区| 亚洲 欧美日韩 另类| 97色色色综合网站| 人妻精品免费一二三区| 老熟女91av| 天天久久| 亚洲另类综合欧美| 啊v在线观看视频| 国模精品娜娜一二三区| 国产热av| 成人午夜视频免费播放| 欧美精品欧美精品系列| 欧美亚洲丝袜美女电影| 亚洲欧美国产va在线播放频| 日韩欧美麻豆大片| 中文字幕精品探花视频| 久久免费老司机精品| 久久区| 美女超碰978| 97干色| 人妻天天爽夜夜爽爽| 久久老女人| 91丝袜美女| 2024年最新色情网站在线观看| 老熟女91av| 台湾一区国产高清在线| 久久综合女优| 国产精品干干干| 97就爱干| 99精彩视频| 欧美宗合色| 日本一区二区电影网站| 亚洲激情网| 综合久久欧美| 91欧美www| 亚洲欧美大| 日本影视久久免费| 9久久美女首页| 九月丁香综合网| 女人天堂网| 亚洲午夜免费狠狠干| 不卡av免费在线网址| 国产农村妇女精品一二区| 国产在线观看91精品一区| 91小视频| 啊啊啊啊操死我| 激情无码日韩| 国产精品另类| 高潮内射在线| 欧美大香蕉同搞| 78m成人视线| 中文字幕制服欧美久久一区| 福利社区午夜一区二区| 少妇高潮九九九九九九九| 熟妇在线视频一区二区| 狠狠久久手机视频精品| 欧洲精品区| 国内91熟女人妻丝袜天天精品视频在线 | 狠狠图片青青草| 国产做?爰片久久毛片?片美国| 91一区二匹| 天天干天天中出av| 人妻少妇精品一区二区三区| 家庭乱伦国产| 欧美天天综合在线| 精品九九九九九九九九九| 狠狠干婷婷| 人人摸.人人色| 亚洲综合嫩| 高清无码国产亚洲| 欧美精品久久96人妻无码| 色哟哟av网址| 中文字幕在线观看AV| 韩国三级理论在线| 99久久久无码精品国产人| 久久东京热成人| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 精品亚洲国产成人av网站| 97亚洲中文| 在线 欧美 亚洲| 自拍欧美| 国产精品白虎| 婷婷色影院| 操B在线观看| 国产探花日韩援交| 啊啊嗯嗯好爽| 伊人网在线点播| 人妻黑丝袜电影| 亚洲乱熟女一区二区三区大香蕉| 婷婷色色五月| 国产97综合| 九月丁香婷婷| 少妇被玩视频二三区| 国产高潮AA片免费看| 一级性爱啪啪视频| 永久电影三级在线观看| 欧美97av| av一区二区三区四区| 九九九九热只有精品| 射丝袜大香蕉| 青青草色插素人| 一区二区三区日韩欧美 | 亚州成人a∨| 精品少妇一区二区三区免费观看| 九九亚洲视频| 91Chinese在线| 国产一级黄色片在线观看| 强奸乱伦资源| 国产成人精品日本视频| 亚洲 欧美 手机在线观看| 日本性爰一道本| 亚洲最大成人a毛毛片| 天天色天天干天天射| 天天激情综合站| 人人玩人人添人人澡免费| 亚洲AV秘无码一区..| 日韩欧洲操屄视频| 天天谢天天干| 小视频国产| 秋霞一级视频在线观看免费| 欧美黑人精品在线播放| 久久亚洲欧美中文字幕国语| 成人免费毛片| 一个国产在线综合网站| 操日韩第| 肉嘟嘟www视频在线观看高清| 国产精品宅男免费| 激情五月天色色网| 91蜜桃婷婷狠狠久久综合9色| 99综合视频一体| 亚洲图片 91| www.四虎在线| 91 丝袜在线观看| 好爽要喷了| 97久久国产| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 撸无码不卡免费视频| 亚洲天堂资源| 九九亚洲精品| 歐美性天天| 精品久久久久成人码免| 亚洲一区二区av| 国产老太乱伦一区| 蜜乳Av成人片网站| 国产67194| 成 人 影视 一区 二区 三区 四区| 蜜桃中文字日产乱幕4区| 日韩精品9区| 超碰97日韩| 亚洲欧洲av影音| 一,爱啪啪,在线免费视频| 婷婷亚洲综合| 99蜜桃臀亚洲成人在线观看| 久操免费电影| 人妻偷拍一区二区三区| 免费毛片在线播放| 欧美香蕉视xxx| 九九九九九九免费视频| 久久久九九九| 久久露脸国产老熟女| 久久久久久大| 欧美日综合| av无线看| 狠狠中文字幕| 亚洲AV色图一区| 亚洲精品一区二区精华| 欧美精品1区2区3区| 亚洲欧美天堂在线| 中文 人妻 制服| 国产欧美日韩一区二区三区| 欧美熟女少妇| 久久精品国产97欧美精品亚洲 | 欧美一品道| 探花视频免费观看国产专区| 日韩三级天堂在线观看| 欧美 亚洲 大香| 草草草视频| 欧美大香蕉专区网| 白丝AV网站| 蜜臀久久99精品久久久久| 日韩av影片在线观看| 人人澡综合涩| 黄色免费网| 亚州精人品大香蕉| av影院十区| 中国一区二区亚洲人妻| 成人色女网| 亚洲日韩天堂| 嗯嗯啊操我| 欧美92| 五月天玖玖资源站| 五码视频在线观看| 乱人伦 国语对白:视频直接看| AV色五月| 凸凹视频在线观看| 我中文字幕6区| 亚洲成人在线高清| 亚洲成人精品久久久| 999久久久| 欧美美女自慰一区二区三区| 欧美色图91| 亚洲色五月| 熟女熟妇一区二区三区视频| 激情啪啪拍91| 人妻色情天天操| 偷看洗澡一二三区美女| 激情久久日韩精品中文字幕麻豆| 狠狠色狠狠色狠狠五月| 亚洲综合骚逼| 秋霞免费AV| av日韩中文字幕| 91站街按摩店老熟女熟女| 性欧美| 五月天激情四射| 中文字幕一区二区三区人妻不卡 | 日韩97精| 日本在线视频导航| 超碰色大香蕉| 99精品免费| 亚洲图片另类| 亚洲影院小综合| 精品毛片av一区二区| 亚洲老司机123专区| 国产欧美日韩精品中文| 97在线视频观看免费| 开心五月婷婷激情| 神马久久午夜| 欧美亚洲AN| 8050午夜少妇无码| 最近二区三区视频大全| 天天看少妇| 一线黄色免费性爱片| 欧美美逼| 久久久精品日本一道| 8x福利精品第一福利视频导航| 中文字幕AV片| av片在线观看免费播放| 青青色在线观看| 国产av热热色| 337p大胆噜噜噜噜噜91Av| 97视频网站| 9999亚洲电影| 免费黄色视频网址| 100啪啪视频大全| 97欧美色综合| 久久欧美按摩999| 中文字幕一区二区日韩网| 嫩草 我啊~嗯~在线| 色综合天天| 欧美一区二区三区互相| 大干人妻| 久久综合日韩亚洲欧美| 日韩欧美中文| 91啪啪| 九九九九欧美| 小草三级久久观看| 亚洲第一无码播放立川理惠| 亚洲欧美色图片| 素人无码中文字幕| 国产欧美美女免费观看视频| 国产日韩欧美亚洲精品95| 97在线免费视频观看| 9精品久久| 天美av在线观看| 日亚韩精品视频二区三| 色婷婷六月丁香七月婷婷| 国产97在线播放| 91久久国产综合精品| 天天综合网~69| 色香色欲天天综合网天天来吧| 精品欧美不卡在线播放| 玖玖爱视频网站| 日韩综合97P| 91在线综合网| 一区二区激情国产熟女| 国产精品无码在线| 国产中文字幕在线点播| 国产精品第一页国产大屁股视频免费区 | 亚洲情色在线| www.狠狠干.coom| 99操碰| 国产亚州高清国产拍精| 九九视频黄色片| 国产一区二区三区白丝| 丁香五月天婷婷姐| 翔田千里av一区二区三区| 精品毛片av一区二区| 青娱乐休闲视频在线观看| 亚洲欧美校园| 熟妇高潮二区三区| 综合色拍| 青青草精玖玖69精品| 九色 人妻 大香蕉| 五月激情在线| 亚洲精品视频在线播放| 国产美女高潮叫床视频| 97欧美性爱| 亚洲中文字幕久久人妻| 日韩欧美大力操| WWW啪啪的com| 日韩字幕一区| 乱伦一二三区| 五月天久久综合网| 五月丁香六月综合缴清无码 | 日韩欧视频| 丝袜美腿丝袜| 91色欧美| 久久婷婷成人综合色怡春院| 麻豆天美在线| 青椒国产97在线熟女| 精品欧美А∨无码黑人大荫蒂| 乱抡国产91| 美女操逼A A| 丁香六月激情| av日韩国产一区二区| av在线免费一区二区| 欧美成人黄网色网站| av天堂手机版追回 | 色777999综合| 我爱操| 综合 亚洲 欧美| 亚洲爽图| 一级日本牲交大片好爽在线看| 91香蕉视频在线观看免费| 天天操人人操狠狠插| 东京热男人的天堂精品| 久久精视频美日韩在线视频| 簧片免费看视频| 日韩乱码Av| 久久精品一区| 搡老女人老91妇女熟女| 超碰97极品9| 欧美人体性爱互联网第一页婷婷日本| 粉嫩av在线| 人人看人人插| 一区二区三区精品视频| 丝袜美腿诱惑亚洲欧美视频在线观看| 99热97| 日韩无码AB| 欧美自拍网| 黄色免费网| 亚洲一卡2卡3卡4卡乱码网站| 蜜乳av首页| 伊人97色天使| 成年人免费观看网站| 9Ⅰ超碰| 成人七区| 91碰碰碰| 日日干男人的天堂| 麻豆熟妇乱妇熟色A片在线看| a'v在线资源| 中国东北熟女老太婆内谢| 欧苏综合色综合| 北条麻妃性愛视频| 无码粉嫩白虎一线天b区| 欧美日韩午夜精品一区二区三区| 国产精品成人福利在线| 97电影院超碰| 老司机午夜福利视频一区二区| 综合自拍| 亚洲精品xxx| 欧洲天天在线| 性欧美| 另类TS人妖一区二区三区 | julia国产在线 | 日韩人妻精品中文字幕| 久久久啊啊啊| 操逼操逼视频操逼| 东北黄色电影| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 天天透伊人| 高清孕妇孕交 交孕妇| 欧美精品二区视频在线| 91超碰人人操| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 每日更新AV| 九九英色视频| 亚洲爽图| 91碰碰碰| 欧美亚洲韩国视频十五区| 国产Av超碰| 射丝袜高跟鞋99| 好涩综合| 无码国产精品午夜不卡(| 级品肉射| 久久精品国产AV一区二区三区| 天天色粽合合合合合合合| 久艹99| 免费在线黄片视频| 在线视频一区二区传媒| 另类图片综合| 黄污污污污| 欧美激情 亚洲色图| 欧美黑人精品一区二区| 走光一区92下载| 激情五月综合开心五月| 青娱乐亚洲热| 淫荡网址| 夜夜爽77777| 国产一线二线三线av| 国产精品亚洲一区二区三区四区| 中国黄色特级精品一区二区三区片| 久久久久久亚洲Av无码| 操操操操操操| 亚洲黄色视频在线观看视频| 中文字幕艹艹| 国产精品一区二区a| 97一区二区蜜臀| 91视频精品| 精品国产72| 久久精品日韩| 欧美一级专区免费大片| 天天综合网日韩7799| 制服丝袜第二页| 18禁超污无遮挡无码免费网| 欧洲站一级二级三级h| 性色av婷婷久久一区二区点复制| 亚州黄站| 大香樵伊人网| 婷婷超| 亚洲棕合电彰| 日韩亚洲中文有码视频| 国产AV人人夜夜澡人人爽麻豆| 人人干人人搞人人摸| 超碰97极品9| 成人夜夜爽| 91性高朝久久久久久久久| 国产亚卅97| 蜜乳AV一区二区三区四| 麻豆色约约| 天天欧美欧美亚洲网| 综合久久久久久久久91| 清清草影| 日本肏逼视频在线观看| 97精品一区二区三区免费| 偷拍欧美激情| 日本 色 导航| 日本一二三免费久久| 亚洲日韩肥臀视频在线观看| a亚洲欧美色欲| 日韩中文字幕宗合在线| 天美麻花大全视频| 精品人妻中文字幕高清| 综合天天网| 精品少妇一区二区三区在线视频| 97操b| 天天日天天舔东京热 | 欧美情色男人的天堂| 日本午夜操逼| 九热中文字幕| 天天综合网AV91| 99热精品在线观看| 天天躁日日躁AAAAXXXX国产| 99久久免费看精品国产一区| 尻女朋友一夜| 亚洲一卡2卡3卡4卡乱码网站 | 少妇熟女视频一二三区| 久久日韩毛| 操逼逼福利视频| 超碰在线人人射| 国产一进一出视频网站| 97亚洲中文| 亚洲老司机123专区| 激情一区二区三区在线观看| 午夜操逼不卡| 中文字幕乱亚洲美女精品一区| 丁香婷婷激情五月天无毒不卡 | 亚洲国产精品久久久久婷婷青年| 亚洲色图欧美色图日韩色图| 久久东京热久久| 大香蕉在线SuP| 婷婷五月天久久精品视频一区二区三区| 被体育老师抱着c到高潮| 天堂69亚洲精品中文字| 九九九成人| 人人妻天天做天天爽| 蜜臀AV成人精品蜜臀AV久久| 五月丁香影院| 一本一道vs波多野结衣| 91人精品妻入口| 蜜臀久久99精品久久久久久婷婷| 久久是精品| 高跟伊人julia ann| 91是天天| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 国产热av| 韩国三级三级BD在线| AV天天在线观看| 啊视频在线| 一区三区啪啪| 日本 色 导航| 日本一区二区三区午夜观看| 啊啊啊好想要| 国产sv美女内射| 久久久999国产精品| 久久久九精品| 日本熟妇色熟妇在线视频播放| 亚洲国产综合久久久性感熟妇| 看日韩美女二区三区免费操逼视频 | 色欲日韩欧美在线一区| 丁香五月大香蕉| 国产精品激情久久久久久久| 日本成人A片网站| 日本成人免费一区二区三区| 99re99| 欧美天天综合在线| 97亚洲综合在线| av天堂加勒比| 亚洲色图8| 九九九国产精品| 蜜桃网熟妇| 久久精品无码熟妇一区二区三区视频导航| 美女91av| 性色高清..……| 日本天堂在线播放| 超碰 欧美| 深夜激情 | 久久这里只精品| 久操免费电影| 九九热av| 91日韩| 国产婷婷综合在线观看| 国产综合在线视频网站| 成人免费看吃奶视频网站| 狠狠中文字幕| 亚洲精品亚洲人成在线麻豆|