timm documentation

Modeller

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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:

  • --model modelini seçer.
  • --pretrained önceden eğitilmiş ağırlıkları yükler.
  • --num-classes sı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ı

AdKaynak
resnet50timm kayıt defterindeki mimari, varsayılan önceden eğitilmiş yapılandırmasıyla (burada a1_in1k)
resnet50.a1_in1kMimari + önceden eğitilmiş etiketi, bilinmeyen bir etiket hata oluşturur
hf-hub:timm/resnet50.a1_in1kHugging 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/folderconfig.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ışsa state_dict veya file içinden, aksi halde huggingface_hub yüklüyse Hub'dan (hf_hub_id) veya url adresinden 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_classes sınıflandırıcı boyutunu belirler, 0 sı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_pool havuzlama türünü belirler; seçenekler modele özgüdür (ör. çoğu konvolüsyonel ağ için avg, max, avgmax, catavgmax, ViT için token, avg, map), '' havuzlamayı devre dışı bırakır.
  • in_chans girdi 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_size yapı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_cls ile) 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 veya PretrainedCfg) değiştirir.
  • pretrained_cfg_overlay bazı alanlarını geçersiz kılar, örneğin pretrained_cfg_overlay=dict(file='weights.pth') yukarıdaki sınıflandırıcı / giriş konvolüsyonu uyarlama işlemiyle birlikte pretrained=True ağırlıklarını yerel bir dosyadan yükler (train.py içinde --pretrained-path parametresinin yaptığı gibi).
  • checkpoint_path, model oluşturulduktan sonra load_checkpoint ile 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.
  • device model 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.
  • dtype model 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.

AlanAçıklama
architecture, tagModel mimarisi ve önceden eğitilmiş etiketi
hf_hub_id, url, file, state_dictAğırlık kaynakları (bkz. yukarıdaki pretrained)
input_size, test_input_size, fixed_input_sizeEğ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_modeEval 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, stdGirdi normalizasyonu
num_classes, label_names, label_descriptionsSınıflandırıcı boyutu ve etiketler (biliniyorsa)
classifier, first_convYü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, notesAğı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_dict bir kontrol noktası dosyasını okur ve durum sözlüğünü döndürür.
  • resume_checkpoint, train.py kontrol 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 bir config.json dosyası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

< >

( 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

< >

( 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

< >

( filter: typing.Union[str, typing.Iterable[str]] = ''exclude_filters: typing.Union[str, typing.Iterable[str]] = '' )

Parametreler

  • filter — fnmatch ile çalışan joker filtre(ler).
  • exclude_filters — filter ile dahil edilen modelleri hariç tutmak için kullanılan joker karakterli filtre(ler).

Doğal sıralamaya göre, etiketli ön eğitilmiş model adlarının listesini döndürür.

timm.list_modules

< >

( )

Model giriş noktalarını içeren modül adlarının sıralı listesini döndürür.

timm.is_model

< >

( model_name: str )

Önceden eğitilmiş etiketini yok sayarak bir model mimarisinin kayıtlı olup olmadığını kontrol edin.

timm.is_model_pretrained

< >

( model_name: str )

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

< >

( model_name: strmodule_filter: typing.Optional[str] = None )

Parametreler

  • model_name — Ön eğitilmiş etiketli veya etiketsiz model adı.
  • module_filter — Ayarlanırsa, model bu alt modülde değilse hata fırlatılır.

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

< >

( 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

< >

( 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

< >

( model_name: str )

Parametreler

  • model_name — Model adı, önceden eğitilmiş herhangi bir etiket yok sayılır.

Bir model mimarisi için tüm önceden eğitilmiş cfg'lerin kopyalarını alın.

sınıf timm.models.PretrainedCfg

< >

( 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

timm.models.get_model_input_config

< >

( model: Module )

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.

timm.models.get_model_traits

< >

( model: Module )

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

< >

( 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

< >

( 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

< >

( 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

< >

( 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

< >

( checkpoint_path: struse_ema: bool = Truedevice: typing.Union[str, torch.device] = 'cpu'weights_only: bool = True )

Parametreler

  • 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.
  • weights_only — Yalnızca ağırlıkların yüklenip yüklenmeyeceğini belirtir (torch.load parametresi).

Kontrol noktası dosyasından durum sözlüğünü yükleyin.

timm.models.resume_checkpoint

< >

( 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

< >

( 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

< >

( 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 (bool veya "both", isteğe bağlı, varsayılan False) — Modelin safetensors ile mi yoksa geleneksel PyTorch yöntemiyle (bu yöntem pickle kullanı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

< >

( fn: typing.Callable[..., typing.Any] )

Parametreler

  • fn — name altında kayıtlı model giriş noktası fn.

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

< >

( 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
Update on GitHub