kozistr/pytorch_optimizer
optimizer & lr scheduler & loss function collections in PyTorch
pytorch‑optimizer – 一個即用型 PyTorch 優化器、調度器與損失函數的工具箱
什麼是它 – 一個 Python 套件,透過單一且一致的 API,將超過一百種研究等級的優化器(例如 AdamP, Ranger21, Lion, SAM)以及一些學習率調度器與損失函數封裝在一起。它旨在為任何使用 PyTorch 訓練深度學習模型的開發者提供便利,讓他們無需撰寫自定義的樣板代碼即可嘗試最新的優化技巧。
為什麼你可能會感興趣
- 廣泛的覆蓋範圍 – 該函式庫收集了許多近期發表的變體,這些變體通常分散在各個獨立的儲存庫或論文中。
- 統一的介面 – 所有組件都可以直接實例化,透過名稱查找(
load_optimizer('adamp')),或使用輔助工具create_optimizer()來建立,該工具還能串接選用的技巧,例如梯度中心化(Gradient Centralization)、Lookahead 或為了加速而使用的foreach。 - 選用的生態系統整合 – 當安裝了
bitsandbytes,q‑galore‑torch與torchao時,可以與它們協同工作,為您提供無需額外代碼的低精度或量化優化功能。 - 生產就緒 – 經過 CI 測試、具備型別註解,並已在 PyPI 上發布(Apache‑2.0 授權)。
安裝方式
pip install pytorch-optimizer # requires Python ≥3.8 and PyTorch ≥1.10
如果您需要選用的整合功能,請單獨安裝它們(例如 pip install bitsandbytes)。
快速開始
from pytorch_optimizer import AdamP, create_optimizer, load_optimizer
model = MyNet()
# 1️⃣ 直接使用類別
opt = AdamP(model.parameters(), lr=1e-3)
# 2️⃣ 透過字串名稱載入
opt = load_optimizer('adamp')(model.parameters(), lr=1e-3)
# 3️⃣ 使用同時添加常用技巧的輔助工具
opt = create_optimizer(
model,
optimizer_name='adamp',
lr=1e-3,
weight_decay=1e-3,
use_gc=True, # Gradient Centralization
use_lookahead=True, # Lookahead wrapper
)
You can also fetch the class via torch.hub:
opt_cls = torch.hub.load('kozistr/pytorch_optimizer', 'adamp')
opt = opt_cls(model.parameters(), lr=1e-3)
探索有哪些可用選項
from pytorch_optimizer import (
get_supported_optimizers,
get_supported_lr_schedulers,
get_supported_loss_functions,
)
print(get_supported_optimizers()) # list of all 100+ optimizers
print(get_supported_optimizers('adam*')) # filter by pattern
print(get_supported_lr_schedulers('cosine*')) # scheduler names
print(get_supported_loss_functions('*focal*')) # loss names
The README 包含一個長表格,將每個優化器連結到其原始代碼儲存庫與論文,以便您可以追溯研究來源。
典型使用情境工作流程
- 選擇一個符合您訓練方案的優化器(例如
Ranger21)。 - 選用性地啟用
use_gc或use_lookahead以獲得額外的穩定性。 - 將優化器接入您平常的 PyTorch 訓練迴圈中 – 不需要其他變動。
- 如果您需要學習率調度,請使用
get_supported_lr_schedulers()取得一個,並將其傳遞給torch.optim.lr_scheduler或使用函式庫內建的封裝器。
誰在維護它 – 由 kozistr 團隊積極維護,提供 CI 標誌、代碼覆蓋率報告以及在 PyPI 上的定期發布。
總結** – pytorch‑optimizer 是一個實用且面向生產環境的現代優化器與相關工具的集合,讓 PyTorch 使用者可以快速且安全地嘗試最新的訓練算法。
相關
- 專案
- 專案
- 專案
- Dispatch
- 專案