حلقة تدريب PyTorch احترافية

1 دقيقة

الهدف: الفصل الواضح بين التدريب والتحقّق والحفظ والمقاييس.

عصر تدريب واحد

python
def train_epoch(model, loader, criterion, optimizer, device):
    model.train()
    total_loss = 0.0
    for x, y in loader:
        x, y = x.to(device), y.to(device)
        optimizer.zero_grad(set_to_none=True)
        logits = model(x)
        loss = criterion(logits, y)
        loss.backward()
        optimizer.step()
        total_loss += loss.item() * x.size(0)
    return total_loss / len(loader.dataset)

الضرب في x.size(0) يُعيد بناء المجموع لكل مثال قبل المتوسّط الإجمالي. المتوسّط الساذج لمتوسّطات الدُّفعات يُحيِّز الدُّفعة الأخيرة إن كانت أصغر.

معاينة — بقية الدرس متاحة للمسجّلين فقط.

هل سجّلت من قبل برمز؟

وصولك مرتبط بحسابك وليس بهذا الرابط. سجّل الدخول بنفس البريد الذي استخدمته في الصف: دورتك بانتظارك، ولا حاجة لإدخال الرمز مجددًا.

تسجيل الدخولليس لديك حساب بعد؟ أنشئ حسابًا
هذا الدرس جزء من وحدة «تعليم الشبكة»

الوحدات الأولى من الدورة مفتوحة للجميع. أما البقية فأمامك ثلاثة خيارات: شراء هذه الدورة مرة واحدة، أو الاشتراك، أو إدخال الرمز الموزّع في القاعة.

هل أنت طالب في هذه الدورة؟

يرتبط الرمز بحسابك: سجّل الدخول أو أنشئ حسابًا وسيُطبَّق تلقائيًا عند عودتك.

ليس لديك حساب بعد؟ أنشئ حسابًا