Bitsandbytes 文件
SGD
並獲得增強的文件體驗
開始使用
SGD
隨機梯度下降(Stochastic gradient descent,SGD)是一種基本的梯度下降最佳化器,用於在給定一組模型引數的情況下最小化損失,並沿著梯度的相反方向更新引數。更新是在從資料集中隨機抽樣的小批次資料上執行的。
bitsandbytes 也支援動量和 Nesterov 動量,透過將過去梯度的加權平均值新增到當前梯度中來加速 SGD。
SGD
class bitsandbytes.optim.SGD
< 原始碼 >( params lr momentum = 0 dampening = 0 weight_decay = 0 nesterov = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )
__init__
< 原始碼 >( params lr momentum = 0 dampening = 0 weight_decay = 0 nesterov = False optim_bits = 32 args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )
引數
- params (
torch.tensor
) — 用於最佳化的輸入引數。 - lr (
float
) — 學習率。 - momentum (
float
, 預設為 0) — 動量值透過採取更大的步長來加速最佳化器。 - dampening (
float
, 預設為 0) — 阻尼值減小最佳化器的動量。 - weight_decay (
float
, 預設為 0.0) — 最佳化器的權重衰減值。 - nesterov (
bool
, 預設為False
) — 是否使用 Nesterov 動量。 - optim_bits (
int
, 預設為 32) — 最佳化器狀態的位數。 - args (
object
, 預設為None
) — 包含額外引數的物件。 - min_8bit_size (
int
, 預設為 4096) — 用於 8 位最佳化的引數張量的最小元素數量。 - percentile_clipping (
int
, 預設為 100) — 透過跟蹤最後 100 個梯度範數,並在某個百分位處裁剪梯度來自動調整裁剪閾值,以提高穩定性。 - block_wise (
bool
, 預設為True
) — 是否獨立量化張量的每個塊,以減少異常值效應並提高穩定性。
基礎 SGD 最佳化器。
SGD8bit
class bitsandbytes.optim.SGD8bit
< 原始碼 >( params lr momentum = 0 dampening = 0 weight_decay = 0 nesterov = False args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )
__init__
< 原始碼 >( params lr momentum = 0 dampening = 0 weight_decay = 0 nesterov = False args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )
引數
- params (
torch.tensor
) — 用於最佳化的輸入引數。 - lr (
float
) — 學習率。 - momentum (
float
, 預設為 0) — 動量值透過採取更大的步長來加速最佳化器。 - dampening (
float
, 預設為 0) — 阻尼值減小最佳化器的動量。 - weight_decay (
float
, 預設為 0.0) — 最佳化器的權重衰減值。 - nesterov (
bool
, 預設為False
) — 是否使用 Nesterov 動量。 - args (
object
, 預設為None
) — 包含額外引數的物件。 - min_8bit_size (
int
, 預設為 4096) — 用於 8 位最佳化的引數張量的最小元素數量。 - percentile_clipping (
int
, 預設為 100) — 透過跟蹤最後 100 個梯度範數,並在某個百分位處裁剪梯度來自動調整裁剪閾值,以提高穩定性。 - block_wise (
bool
, 預設為True
) — 是否獨立量化張量的每個塊,以減少異常值效應並提高穩定性。
8 位 SGD 最佳化器。
SGD32bit
class bitsandbytes.optim.SGD32bit
< 原始碼 >( params lr momentum = 0 dampening = 0 weight_decay = 0 nesterov = False args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )
__init__
< 原始碼 >( params lr momentum = 0 dampening = 0 weight_decay = 0 nesterov = False args = None min_8bit_size = 4096 percentile_clipping = 100 block_wise = True )
引數
- params (
torch.tensor
) — 用於最佳化的輸入引數。 - lr (
float
) — 學習率。 - momentum (
float
, 預設為 0) — 動量值透過採取更大的步長來加速最佳化器。 - dampening (
float
, 預設為 0) — 阻尼值減小最佳化器的動量。 - weight_decay (
float
, 預設為 0.0) — 最佳化器的權重衰減值。 - nesterov (
bool
, 預設為False
) — 是否使用 Nesterov 動量。 - args (
object
, 預設為None
) — 包含額外引數的物件。 - min_8bit_size (
int
, 預設為 4096) — 用於 8 位最佳化的引數張量的最小元素數量。 - percentile_clipping (
int
, 預設為 100) — 透過跟蹤最後 100 個梯度範數,並在某個百分位處裁剪梯度來自動調整裁剪閾值,以提高穩定性。 - block_wise (
bool
, 預設為True
) — 是否獨立量化張量的每個塊,以減少異常值效應並提高穩定性。
32 位 SGD 最佳化器。