timm documentation
Modeller
Modeller
Bu sayfa, timm modellerinin oluşturulması ve keşfedilmesi, önceden eğitilmiş yapılandırmaları ve checkpoint / Hub yardımcıları için API referans belgelerini ve timm modelleri tarafından paylaşılan arayüzün genel bakışını içerir. Bireysel mimariler, model özetlerinde ve model bazlı sayfalarda ele alınır.
Kullanım
Modeller, create_model ile ad üzerinden oluşturulur. Ad, timm içinde kayıtlı bir mimariyi seçer; isteğe bağlı olarak . sonrasında bir önceden eğitilmiş etiketle (resnet50.a1_in1k) veya bir kaynak öneki aracılığıyla Hugging Face Hub'daki veya yerel bir klasördeki bir modeli seçer. create_model'in kendisi kullanmadığı anahtar kelime argümanları, modelin giriş noktası fonksiyonu üzerinden model sınıfı yapıcısına aktarılır; bu sayede modelle ilgili herhangi bir argüman ayarlanabilir.
import torch
import timm
# Random init (pretrained=False is the default). The tag selects the pretrained cfg, and the weights loaded with
# pretrained=True. Without a tag the architecture's default tag is used.
model = timm.create_model('vit_tiny_patch16_224.augreg_in21k_ft_in1k')
print(model.pretrained_cfg['mean'], model.pretrained_cfg['crop_pct']) # (0.5, 0.5, 0.5) 0.9
# Model arguments pass through to the model class, a 10 class head, single channel input and regularization.
model = timm.create_model('resnet50', num_classes=10, in_chans=1, drop_rate=0.2, drop_path_rate=0.05)
# Discover models, filters are fnmatch wildcards.
timm.list_models('convnext*') # architecture names
timm.list_pretrained('resnet50.*') # architecture.tag names w/ pretrained weights
timm.list_models(module='vision_transformer', pretrained=True)
# Image preprocessing to match the model's pretrained cfg (input size, interpolation, crop, mean / std).
model = timm.create_model('vit_tiny_patch16_224.augreg_in21k_ft_in1k')
data_config = timm.data.resolve_model_data_config(model)
transform = timm.data.create_transform(**data_config, is_training=False)
x = torch.randn(2, 3, 224, 224)
features = model.forward_features(x) # unpooled features, (2, 197, 192)
pre_logits = model.forward_head(features, pre_logits=True) # pooled features, (2, 192)
logits = model.forward_head(features) # same as model(x), (2, 1000)
model.reset_classifier(5) # replace the classifier w/ a new 5 class one
model.set_input_size(img_size=(384, 384)) # resample the position embedding for a new resolution
logits = model(torch.randn(2, 3, 384, 384)) # (2, 5)Eğitim betiği (train.py) ortak argümanları bu bayraklar aracılığıyla sunar:
--modelmodelini seçer.--pretrainedönceden eğitilmiş ağırlıkları yükler.--num-classessınıflandırıcı boyutunu (num_classes) ayarlar.--in-chans, giriş kanallarını (in_chans) ayarlar.--gp, küresel havuzlama türünü (global_pool) ayarlar.--drop, sınıflandırıcı dropout'unu (drop_rate) ayarlar.--drop-path, stochastik derinliği (drop_path_rate) ayarlar.--pretrained-path, sınıflandırıcı / giriş konvolüsyonu uyarlama ile yerel bir dosyadan önceden eğitilmiş ağırlıkları yükler (pretrained_cfg_overlay=dict(file=...)).--initial-checkpoint, model oluşturulduktan sonra uyarlama yapılmadan bir checkpoint yükler (checkpoint_path).--model-kwargs key=value ...diğer model argümanlarını iletir.
Giriş için hızlı başlangıç bölümüne bakın.
Model adları
| Ad | Kaynak |
|---|---|
resnet50 | timm kayıt defterindeki mimari, varsayılan önceden eğitilmiş yapılandırmasıyla (burada a1_in1k) |
resnet50.a1_in1k | Mimari + önceden eğitilmiş etiketi, bilinmeyen bir etiket hata oluşturur |
hf-hub:timm/resnet50.a1_in1k | Hugging Face Hub deposu, mimari, önceden eğitilmiş cfg ve model argümanları config.json dosyasından gelir, @revision bir revizyon seçer |
local-dir:/path/to/folder | config.json ve ağırlıklar içeren, save_for_hf tarafından yazılmış yerel klasör |
Hub ve yerel kaynaklar, pretrained=False ile bile yapılandırmayı okur; ağırlıklar yalnızca pretrained=True ile yüklenir.
Kaynak öneki içermeyen ve /, \ veya : karakterlerinden biri içeren bir ad, aynı ada sahip bir kayıt defteri modeline geri düşmek yerine ValueError fırlatır. hf_hub:, hf-hub: için kullanımdan kaldırılmış bir takma addır.
Ortak argümanlar
pretrained, önceden eğitilmiş cfg ağırlıklarını, ayarlanmışsastate_dictveyafileiçinden, aksi haldehuggingface_hubyüklüyse Hub'dan (hf_hub_id) veyaurladresinden yükler. Aşağıdaki sınıflandırıcı / giriş konvolüsyon uyarlama işlemi, ince ayar için önceden eğitilmiş bir modelin tek çağrıda oluşturulmasını sağlar.num_classessınıflandırıcı boyutunu belirler,0sınıflandırıcıyı kaldırır. Varsayılan değer, önceden eğitilmiş cfg'den gelir. Önceden eğitilmiş ağırlıklar yüklenirken, farklı bir sınıf sayısı sınıflandırıcı ağırlıklarını atar (rastgele başlatma durumunda bırakılır).global_poolhavuzlama türünü belirler; seçenekler modele özgüdür (ör. çoğu konvolüsyonel ağ içinavg,max,avgmax,catavgmax, ViT içintoken,avg,map),''havuzlamayı devre dışı bırakır.in_chansgirdi kanallarını belirler. Varsayılan değer, önceden eğitilmiş cfg'den gelir. Önceden eğitilmiş ağırlıklar yüklenirken, bu değer kaynak kontrol noktasının kanal sayısından (input_size[0]önceden eğitilmiş cfg'de) farklıysa, desteklenen durumlarda ilk conv ağırlıkları uyarlanır.drop_rate, çoğu model tarafından desteklenen sınıflandırıcı dropout değerini ayarlar.drop_path_rate, çoğu model tarafından desteklenen stohastik derinliği ayarlar.img_size, sabit giriş boyutuna sahip ViT tarzı ve diğer modellerin bir argümanıdır; aksi belirtilmedikçe, önceden eğitilmişinput_sizeyapılandırması için oluşturulurlar.- ViT ve EVA ailelerinde
dynamic_img_size=True, her ileri geçişte konum gömülmesini giriş boyutuna yeniden örnekler. features_only(out_indices,output_stride,feature_clsile) modeli, özellik çıkarımı bölümüne bakınız, bir özellik omurgası olarak sarar ve özellik haritaları döndürür.pretrained_cfg, önceden eğitilmiş cfg'yi (bir etiket, sözlük veyaPretrainedCfg) değiştirir.pretrained_cfg_overlaybazı alanlarını geçersiz kılar, örneğinpretrained_cfg_overlay=dict(file='weights.pth')yukarıdaki sınıflandırıcı / giriş konvolüsyonu uyarlama işlemiyle birliktepretrained=Trueağırlıklarını yerel bir dosyadan yükler (train.pyiçinde--pretrained-pathparametresinin yaptığı gibi).checkpoint_path, model oluşturulduktan sonraload_checkpointile bir checkpoint yükler. Uyum sağlama olmadan katı bir yükleme yapılır; checkpoint varsa EMA ağırlıkları kullanılır.cache_dir, önceden eğitilmiş ağırlıkların ve Hub yapılandırmalarının indirme önbelleğini geçersiz kılar.devicemodel sınıfına iletilir ve parametreler doğrudan cihaz üzerinde oluşturulur.device='meta', ağırlıkları için bellek ayırmadan bir model oluşturur.dtypemodel sınıfına iletilir ve parametreler doğrudan bu dtype ile oluşturulur.scriptable, TorchScript betiği için katman yapılandırma bayraklarını ayarlar.exportable, dışa aktarma / izleme için katman yapılandırma bayraklarını ayarlar.no_jit, jit scriptlenmiş katmanları devre dışı bırakmak için katman yapılandırma bayraklarını ayarlar.
None olarak ayarlanan argümanlar modele ulaşmadan önce düşürülür, bu nedenle model varsayılanları geçerli olur. Model sınıfının kabul etmediği argümanlar, çoğu modelde TypeError yükseltir; birkaç model bilinmeyen argümanları yok sayar.
Önceden eğitilmiş yapılandırma
Mimariler, model ile kayıtlı, etiket başına bir adet olmak üzere bir veya daha fazla önceden eğitilmiş cfg'ye sahiptir. Bir cfg, ağırlıkları (konum, lisans, kaynak) ve modelin nasıl eğitildiğini ve bunlarla nasıl değerlendirilmesi gerektiğini açıklar. create_model ile oluşturulan modellerin cfg'si, model.pretrained_cfg içinde bir dict olarak bulunur (model.default_cfg bir takma addır), kayıt defteri sürümleri ise get_pretrained_cfg tarafından PretrainedCfg örnekleri olarak döndürülür.
| Alan | Açıklama |
|---|---|
architecture, tag | Model mimarisi ve önceden eğitilmiş etiketi |
hf_hub_id, url, file, state_dict | Ağırlık kaynakları (bkz. yukarıdaki pretrained) |
input_size, test_input_size, fixed_input_size | Eğitim (ve varsayılan değerlendirme) giriş boyutu, use_test_size=True ile kullanılan değerlendirme boyutu (farklıysa), modelin sabit bir giriş boyutuna sahip olup olmadığı (img_size argümanı) |
interpolation, crop_pct, test_crop_pct, crop_mode | Eval yeniden boyutlandırma interpolasyonu, kırpma oranı (varsayılan center kırpma modunda görüntü input_size / crop_pct boyutuna yeniden boyutlandırılır, ardından ortadan kırpılır) ve kırpma modu |
mean, std | Girdi normalizasyonu |
num_classes, label_names, label_descriptions | Sınıflandırıcı boyutu ve etiketler (biliniyorsa) |
classifier, first_conv | Yükleme sırasında ağırlıkları uyarlamak için kullanılan sınıflandırıcının ve ilk conv'in modül adları |
license, origin_url, paper_ids, paper_name, notes | Ağırlık meta verisi |
Giriş alanları, veri seti için resolve_data_config / resolve_model_data_config tarafından dönüştürülen veri yapılandırması, dönüşümler ve yükleyicidir. cfg, kaynak kontrol noktasını açıklar ve model oluşturulduğunda veya farklı şekilde değiştirildiğinde (num_classes, in_chans, img_size, set_input_size()) güncellenmez. Modelin mevcut giriş kanalları, boyutu ve sabit boyut kısıtı ayrı olarak izlenir: get_model_input_config bunları döndürür ve resolve_input_data_config bir veri yapılandırmasını bunlara göre çözer (eğitim, doğrulama ve çıkarım betikleri gibi). get_model_args modelin şu anki haliyle yeniden oluşturulması için gerekli argümanları döndürür ve save_for_hf bunları dışa aktarılan yapılandırmaya yazar. Ayrıntılar için modelleri uyarla ve dışa aktar bölümüne bakın.
Model arayüzü
timm modelleri, forward() dışında ortak bir arayüz paylaşır: forward_features() / forward_head() ayrımı, sınıflandırıcı sıfırlama, ara özellikler, giriş yeniden boyutlandırma ve gradyan denetimi ile parametre gruplandırma gibi eğitim kancaları. Bu, hangi model ailelerinin hangi kısımları desteklediği dahil olmak üzere timm Model API'sinde açıklanmıştır.
Kontrol Noktaları ve Hub
load_checkpoint, bir kontrol noktası dosyasını (PyTorch veya.safetensors) modele yükler.load_state_dictbir kontrol noktası dosyasını okur ve durum sözlüğünü döndürür.resume_checkpoint,train.pykontrol noktasının model, optimizör ve kayıp ölçekleyici durumunu geri yükler ve devam edilecek dönemi döndürür.
load_checkpoint ve load_state_dict, varsayılan olarak bir train.py kontrol noktasının EMA ağırlıklarını seçer (use_ema)
ve module. (DDP) ile _orig_mod. (torch.compile) anahtar öneklerini kaldırır.
save_for_hf, ağırlıkları ve birconfig.jsondosyasını (mimari, önceden eğitilmiş cfg,model_args,label_names) bir klasöre yazar.push_to_hf_hub, eğer repoda model kartı yoksa, ağırlıkları ve yapılandırmayı üretilmiş bir model kartıyla birlikte Hub repoyu yükler.
Model daha sonra hf-hub: veya local-dir: ile oluşturulur, bkz. modelleri paylaşma ve yükleme.
import timm
from timm.models import save_for_hf
model = timm.create_model('resnet18', num_classes=4)
# ... fine-tune
save_for_hf(model, 'my_resnet18', model_config=dict(label_names=['a', 'b', 'c', 'd']), safe_serialization=True)
model = timm.create_model('local-dir:my_resnet18', pretrained=True) # 4 classes, weights and labels restored
print(model.pretrained_cfg['label_names'])Özel modeller
register_model ile süslenmiş bir model giriş noktası fonksiyonu, create_model ile oluşturulabilmesi ve list_models ile bulunabilmesi için kayıt defterine eklenir. timm içindeki giriş noktaları, modelini build_model_with_cfg ile oluşturur; bu fonksiyon önceden eğitilmiş cfg, önceden eğitilmiş ağırlık yükleme ve features_only işlemlerini yönetir.
API
Model oluşturma
timm.create_model
< source >( model_name: strpretrained: bool = Falsepretrained_cfg: typing.Union[str, typing.Dict[str, typing.Any], timm.models._pretrained.PretrainedCfg, NoneType] = Nonepretrained_cfg_overlay: typing.Optional[typing.Dict[str, typing.Any]] = Nonecheckpoint_path: typing.Union[str, pathlib.Path, NoneType] = Nonecache_dir: typing.Union[str, pathlib.Path, NoneType] = Nonescriptable: typing.Optional[bool] = Noneexportable: typing.Optional[bool] = Noneno_jit: typing.Optional[bool] = None**kwargs: typing.Any )
Parametreler
- model_name — Örneklenmesi istenen modelin adı.
- pretrained — True olarak ayarlanırsa, önceden eğitilmiş ImageNet-1k ağırlıkları yüklenir.
- pretrained_cfg — Model için harici bir pretrained_cfg iletin.
- pretrained_cfg_overlay — Temel pretrained_cfg içindeki anahtar-değer çiftlerini bunlarla değiştirir.
- checkpoint_path — Modelin başlatılmasından sonra yüklenecek checkpoint'in yolu
- cache_dir — Hugging Face Hub ve Torch kontrol noktaları için model önbellek dizinini geçersiz kılar.
- scriptable — Modelin jit scriptable olmasını sağlamak için katman yapılandırmasını ayarlar (henüz tüm modellerde çalışmıyor).
- exportable — Katman yapılandırmasını, modelin izlenebilir / ONNX dışa aktarılabilir olması için ayarlar (henüz tam olarak uygulanmamış/uyulmamış).
- no_jit — Katman yapılandırmasını, modelin jit scriptlenmiş katmanları kullanmaması için ayarlar (şimdilik yalnızca aktivasyonlar).
Bir model oluşturun.
Modelin giriş noktası fonksiyonunu bulun ve yeni bir model oluşturmak için ilgili argümanları iletin.
İpucu:
**kwargs, giriş noktası fn üzerinden timm.models.build_model_with_cfg() fonksiyonuna ve ardından model sınıfının init() metoduna aktarılır. None değerine sahip olan kwargs değerleri, aktarılmasından önce budanır.
Keyword Args: drop_rate (float): Eğitim için sınıflandırıcı dropout oranı. drop_path_rate (float): Eğitim için stohastik derinlik düşürme oranı. global_pool (str): Sınıflandırıcı küresel havuzlama türü.
Örnekler:
>>> from timm import create_model
>>> # Create a MobileNetV3-Large model with no pretrained weights.
>>> model = create_model('mobilenetv3_large_100')
>>> # Create a MobileNetV3-Large model with pretrained weights.
>>> model = create_model('mobilenetv3_large_100', pretrained=True)
>>> model.num_classes
1000
>>> # Create a MobileNetV3-Large model with pretrained weights and a new head with 10 classes.
>>> model = create_model('mobilenetv3_large_100', pretrained=True, num_classes=10)
>>> model.num_classes
10
>>> # Create a Dinov2 small model with pretrained weights and save weights in a custom directory.
>>> model = create_model('vit_small_patch14_dinov2.lvd142m', pretrained=True, cache_dir="/data/my-models")
>>> # Data will be stored at */data/my-models/models--timm--vit_small_patch14_dinov2.lvd142m/*Model keşfi
timm.list_models
< source >( filter: typing.Union[str, typing.Iterable[str]] = ''module: typing.Union[str, typing.Iterable[str]] = ''pretrained: bool = Falseexclude_filters: typing.Union[str, typing.Iterable[str]] = ''name_matches_cfg: bool = Falseinclude_tags: typing.Optional[bool] = None )
Parametreler
- filter — fnmatch ile çalışan joker filtre(ler).
- module — Model seçimini belirli alt modül(lere) (ör. ‘vision_transformer’) sınırlar.
- pretrained — True ise yalnızca geçerli önceden eğitilmiş ağırlıklara sahip modelleri dahil edin.
- exclude_filters — filter ile dahil edilen modelleri hariç tutmak için kullanılan joker karakterli filtre(ler).
- name_matches_cfg — Yalnızca model_name, default_cfg adıyla eşleşen modelleri dahil edin (bazı takma adları hariç tutar).
- include_tags — Model adlarında ön eğitilmiş etiketleri dahil eder (model.tag). None ise, pretrained değerine ayarlanır.
Doğal sıralamaya göre kullanılabilir model adlarının listesini döndürür.
Örnek: list_models(‘gluon_resnet’) — ‘gluon_resnet’ ile başlayan tüm modelleri döndürür list_models(’resnext*’, ‘resnet’) — ‘resnet’ modülünde ‘resnext’ içeren tüm modelleri döndürür
timm.list_pretrained
< source >( filter: typing.Union[str, typing.Iterable[str]] = ''exclude_filters: typing.Union[str, typing.Iterable[str]] = '' )
Doğal sıralamaya göre, etiketli ön eğitilmiş model adlarının listesini döndürür.
Model giriş noktalarını içeren modül adlarının sıralı listesini döndürür.
Önceden eğitilmiş etiketini yok sayarak bir model mimarisinin kayıtlı olup olmadığını kontrol edin.
Bir model adının (etiketli veya etiketsiz) önceden eğitilmiş ağırlıklarının kayıtlı olup olmadığını kontrol edin.
timm.model_entrypoint
< source >( model_name: strmodule_filter: typing.Optional[str] = None )
Bir model adı için model giriş noktası fn'yi, önceden eğitilmiş etiketini yok sayarak getirir.
Önceden eğitilmiş yapılandırma
timm.get_pretrained_cfg
< source >( model_name: strallow_unregistered: bool = True )
Parametreler
- model_name — Ön eğitilmiş etiketli veya etiketsiz model adı.
- allow_unregistered — Mimari önceden eğitilmiş cfg'lere sahip değilse hata fırlatmak yerine None döndürür.
Yükseltilen
RuntimeError
RuntimeError— Etiket mimari için geçersizse veya cfg'leri yoksa ve allow_unregistered False ise.
Bir model adı için önceden eğitilmiş cfg'nin bir kopyasını alın; hiçbiri belirtilmezse varsayılan etiket kullanılır.
timm.get_pretrained_cfg_value
< source >( model_name: strcfg_key: str )
Yükseltilen
RuntimeError
RuntimeError— Modelin kayıtlı önceden eğitilmiş bir cfg'si yoksa veya etiket geçersizse.
Bir model adı için, anahtarla belirli bir önceden eğitilmiş cfg değerini alın; anahtar yoksa None döner.
timm.models.get_arch_pretrained_cfgs
< source >( model_name: str )
Bir model mimarisi için tüm önceden eğitilmiş cfg'lerin kopyalarını alın.
sınıf timm.models.PretrainedCfg
< source >( url: typing.Union[str, typing.Tuple[str, str], NoneType] = Nonefile: typing.Optional[str] = Nonestate_dict: typing.Optional[typing.Dict[str, typing.Any]] = Nonehf_hub_id: typing.Optional[str] = Nonehf_hub_filename: typing.Optional[str] = Nonesource: typing.Optional[str] = Nonearchitecture: typing.Optional[str] = Nonetag: typing.Optional[str] = Nonecustom_load: bool = Falseinput_size: typing.Tuple[int, int, int] = (3, 224, 224)test_input_size: typing.Optional[typing.Tuple[int, int, int]] = Nonemin_input_size: typing.Optional[typing.Tuple[int, int, int]] = Nonefixed_input_size: bool = Falseinterpolation: str = 'bicubic'crop_pct: float = 0.875test_crop_pct: typing.Optional[float] = Nonecrop_mode: str = 'center'mean: typing.Tuple[float, ...] = (0.485, 0.456, 0.406)std: typing.Tuple[float, ...] = (0.229, 0.224, 0.225)num_classes: int = 1000label_offset: typing.Optional[int] = Nonelabel_names: typing.Optional[typing.Tuple[str]] = Nonelabel_descriptions: typing.Optional[typing.Dict[str, str]] = Nonepool_size: typing.Optional[typing.Tuple[int, ...]] = Nonetest_pool_size: typing.Optional[typing.Tuple[int, ...]] = Nonefirst_conv: typing.Optional[str] = Noneclassifier: typing.Optional[str] = Nonelicense: typing.Optional[str] = Nonedescription: typing.Optional[str] = Noneorigin_url: typing.Optional[str] = Nonepaper_name: typing.Optional[str] = Nonepaper_ids: typing.Union[str, typing.Tuple[str], NoneType] = Nonenotes: typing.Optional[typing.Tuple[str]] = None )
Güncel model girişi ve dışa aktarma
Güncel görüntü kanallarını, nominal boyutu ve sabit boyut kısıtlamasını döndürür.
Nominal boyut, esnek modeller için bir öneridir. Kaynak checkpoint meta verileri model.pretrained_cfg içinde kalır ve burada asla değiştirilmez.
Modelin özelliklerinin, güncel kanal ve sınıf sayılarıyla genişletilmiş bir kopyasını döndürür.
Mevcut in_chans ve num_classes öznitelikleri yetkilidir;
burada depolanan özelliklerde tekrarlanmak yerine okunurlar.
Bir özellik sarmalayıcısında bulunmayan öznitelikler atlanır.
timm.models.get_model_args
< source >( model: Moduleoverrides: typing.Optional[typing.Dict[str, typing.Any]] = None )
Yapılandırma sonrası yapılan desteklenen değişiklikler dahil olmak üzere yeniden yapılandırma argümanlarını döndürür.
Çalışma zamanı argümanları fabrika tarafından hariç tutulur. Atılma oranları, geçersiz kılmalarda açıkça sağlanmadıkça atlanır. Dışa aktarırken seri hale getirilemeyen mimari argümanlar için açıkça seri hale getirilebilir bir ikame gereklidir.
timm.models.resolve_model_input_args
< source >( model_name: strargs: typing.Optional[typing.Dict[str, typing.Any]] = None**model_kwargs )
Betik girdi isteklerini create_model için argümanlara dönüştürür.
Kaydedilen model argümanları varsayılan değerlerdir. Açık kanal/boyut istekleri, kaynak checkpoint'i tanımlayan meta verileri üzerine yazmadan hedefi seçer.
timm.models.adapt_input_conv
< source >( in_chans: intconv_weight: Tensorbase_chans: int = 3 )
Parametreler
- in_chans — Hedef model için giriş kanal sayısı.
- conv_weight — OIHW yerleşiminde önceden eğitilmiş Conv2d ağırlıkları.
- base_chans — Ön eğitim için kullanılan fiziksel giriş kanal sayısı. Bu, space-to-depth gövdeleri için ağırlığın giriş boyutundan farklı olabilir.
Yükseltilen
ValueError veya NotImplementedError
ValueError— Kanal sayılarından herhangi biri pozitif değilse.NotImplementedError— Ağırlık biçimi uyarlanamıyorsa.
Ön eğitilmiş giriş konvolüsyon ağırlıklarını farklı bir kanal sayısına uyarlayın.
Kontrol Noktaları ve Hub
timm.models.load_checkpoint
< source >( model: Modulecheckpoint_path: struse_ema: bool = Truedevice: typing.Union[str, torch.device] = 'cpu'strict: bool = Trueremap: bool = Falsefilter_fn: typing.Optional[typing.Callable] = Noneweights_only: bool = True )
Parametreler
- model — Model to load checkpoint into.
- checkpoint_path — Kontrol noktası dosyasının yolu.
- use_ema — Kullanılabilirse EMA ağırlıklarının kullanılıp kullanılmayacağı.
- device — Kontrol noktasının yükleneceği cihaz.
- strict — state_dict anahtarlarının eşleşmesinin katı bir şekilde zorlanıp zorlanmayacağı.
- remap — Durum sözlüğü anahtarlarının sıraya göre yeniden eşlenip eşlenmeyeceği.
- filter_fn — State dict'i filtrelemek için isteğe bağlı bir işlev.
- weights_only — Yalnızca ağırlıkların yüklenip yüklenmeyeceğini belirtir (torch.load parametresi).
Kontrol noktasını modele yükle.
Native PyTorch checkpoints are loaded as state dictionaries. NumPy .npz/.npy` checkpoints are foreign, model-specific formats and are delegated to the model's `load_pretrained helper.
timm.models.load_state_dict
< source >( checkpoint_path: struse_ema: bool = Truedevice: typing.Union[str, torch.device] = 'cpu'weights_only: bool = True )
Kontrol noktası dosyasından durum sözlüğünü yükleyin.
timm.models.resume_checkpoint
< source >( model: Modulecheckpoint_path: stroptimizer: typing.Optional[torch.optim.Optimizer] = Noneloss_scaler: typing.Optional[typing.Any] = Nonelog_info: bool = Trueweights_only: bool = True )
Parametreler
- model — Model to load checkpoint into.
- checkpoint_path — Kontrol noktası dosyasının yolu.
- optimizer — Durumu geri yüklemek için isteğe bağlı optimizör.
- loss_scaler — Durumu geri yüklemek için isteğe bağlı AMP kayıp ölçekleyicisi.
- log_info — Yükleme bilgilerini günlüğe kaydet.
- weights_only — torch.load ile yalnızca ağırlıkların yüklenip yüklenmeyeceğini belirtir.
Kontrol noktasından eğitimi sürdürün.
timm.models.save_for_hf
< source >( model: Modulesave_directory: strmodel_config: typing.Optional[dict] = Nonemodel_args: typing.Optional[dict] = Nonesafe_serialization: typing.Union[bool, typing.Literal['both']] = Falsedata_config: typing.Optional[dict] = None )
Yerel ağırlıkları ve bunların mevcut model ve ön işleme yapılandırmalarını kaydedin.
timm.models.push_to_hf_hub
< source >( model: Modulerepo_id: strcommit_message: str = 'Add model'token: typing.Optional[str] = Nonerevision: typing.Optional[str] = Noneprivate: bool = Falsecreate_pr: bool = Falsemodel_config: typing.Optional[dict] = Nonemodel_card: typing.Optional[dict] = Nonemodel_args: typing.Optional[dict] = Nonetask_name: str = 'image-classification'safe_serialization: typing.Union[bool, typing.Literal['both']] = 'both'data_config: typing.Optional[dict] = None )
Parametreler
- (…) —
- model_args — Fabrikatör tarafından kaydedilenleri tamamlayan açık yeniden yapılandırma argümanları.
- data_config — Dışa aktarılan kontrol noktasıyla kullanılan ön işleme, giriş boyutu ve normalizasyonu içerir.
- safe_serialization (
boolveya"both", isteğe bağlı, varsayılanFalse) — Modelinsafetensorsile mi yoksa geleneksel PyTorch yöntemiyle (bu yöntempicklekullanır) mı kaydedileceğini belirtir. Hem güvenli hem de güvensiz ağırlıkların itilmesini sağlamak için"both"olarak ayarlanabilir.
Özel modeller
timm.models.register_model
< source >( fn: typing.Callable[..., typing.Any] )
Bir model giriş noktası fn ve modülünün default_cfgs içindeki tüm önceden eğitilmiş cfg'leri kaydettiren dekoratör.
Zaten var olan bir adın kaydedilmesi, önceki kaydı ve önceden eğitilmiş cfg'lerini üzerine yazar.
timm.models.build_model_with_cfg
< source >( model_cls: typing.Union[typing.Type[~ModelT], typing.Callable[..., ~ModelT]]variant: strpretrained: boolpretrained_cfg: typing.Optional[typing.Dict] = Nonepretrained_cfg_overlay: typing.Optional[typing.Dict] = Nonemodel_cfg: typing.Optional[typing.Any] = Nonefeature_cfg: typing.Optional[typing.Dict] = Nonepretrained_strict: bool = Truepretrained_filter_fn: typing.Optional[typing.Callable] = Nonecache_dir: typing.Union[str, pathlib.Path, NoneType] = Nonekwargs_filter: typing.Optional[typing.Tuple[str]] = Nonepretrained_model_args: typing.Optional[typing.Dict] = None**kwargs )
Parametreler
- model_cls — Model sınıfı
- variant — Model varyantı adı
- pretrained — Ön eğitilmiş ağırlıkları yükler
- pretrained_cfg — Modelin önceden eğitilmiş ağırlık/görev yapılandırması
- pretrained_cfg_overlay — pretrained_cfg içindeki girdileri geçersiz kılacak girdiler
- model_cfg — Modelin mimari yapılandırması
- feature_cfg — Özellik çıkarma adaptörü yapılandırması
- pretrained_strict — Ön eğitilmiş ağırlıkları katı şekilde yükler
- pretrained_filter_fn — Ön eğitilmiş ağırlıklar için filtre edilebilir
- cache_dir — Hugging Face Hub ve Torch kontrol noktaları için model önbellek dizinini geçersiz kılın
- kwargs_filter — modele aktarılmasından önce filtrelenmesi (çıkarılması) gereken kwargs anahtarları
- pretrained_model_args — Kaynak kontrol noktasını açıklayan yeniden yapılandırma argümanları.
- **kwargs — Model init fonksiyonuna aktarılan model argümanları
Belirtilen default_cfg ve isteğe bağlı model_cfg ile model oluştur
Bu yardımcı fn, bir modelin oluşturulmasına yardımcı olur:
- default_cfg ve ilişkili önceden eğitilmiş ağırlık yükleme işlemlerinin ele alınması
- config tabanlı mimari spesifikasyona sahip modeller için isteğe bağlı model_cfg parametresinin iletilmesi
- features_only model uyarlama
- pruning yapılandırması / model uyarlama