timm documentation
Hugging Face Hubからのモデルの共有と読み込み
Hugging Face Hubからのモデルの共有と読み込み
timm ライブラリには Hugging Face Hub との組み込み統合機能が備わっており、🤗 Hub からモデルを共有したり読み込んだりすることが容易になっています。
この短いガイドでは、次の方法を確認します:
timmモデルをHubに共有する- そのモデルをHubから再度読み込む方法
認証
まず、huggingface_hubパッケージがインストールされていることを確認してください。
pip install huggingface_hub
次に、認証を行う必要があります。以下のコマンドを実行することで、認証を行うことができます。
hf auth login
または、ノートブックを使用している場合は、notebook_loginヘルパーを使用できます:
>>> from huggingface_hub import notebook_login
>>> notebook_login()モデルの共有
>>> import timm
>>> model = timm.create_model('resnet18', pretrained=True, num_classes=4)通常、ここではモデルの学習やファインチューニングを行います。このチュートリアルでは、その部分を省略します。
モデルのファインチューニングが完了したと仮定しましょう。次のステップは、モデルをHubにプッシュすることです。これはtimm.models.push_to_hf_hub関数で実行できます。エクスポートされた設定は、現在のモデルの状態(クラス数、または変更された場合の入力サイズやチャネル数など)を記述しており、モデルの適応とエクスポートを参照してください。
>>> model_cfg = dict(label_names=['a', 'b', 'c', 'd'])
>>> timm.models.push_to_hf_hub(model, 'resnet18-random', model_config=model_cfg)上記を実行すると、モデルはHub上の<your-username>/resnet18-randomにプッシュされます。これで、このモデルを友人と共有したり、ご自身のコードで使用したりできます。
モデルの読み込み
Hubからモデルを読み込むには、hf-hub: を接頭辞として Hub リポジトリ名を指定し、pretrained=True を設定して timm.create_model を呼び出すだけです。ここでは、先ほど Hub にプッシュしたモデルである nateraw/resnet18-random を使用します。
>>> model_reloaded = timm.create_model('hf-hub:nateraw/resnet18-random', pretrained=True)