Barcha kurslar Yo'nalishlar Reyting Kirish Ro'yxatdan o'tish

Model sifatining yarmi — ma’lumot tayyorlashda. Bu modul PyTorch’ning ma’lumot uzatish quvuri (Dataset → DataLoader) va tibbiy tasvirlar uchun MONAI kutubxonasini qamraydi.

Dataset va DataLoader

PyTorch’da ma’lumot ikki bosqichda uzatiladi. Dataset — "nechta misol bor va i-chisini qanday olish kerak" degan savollarga javob beradigan obyekt; DataLoader esa uni batch’larga bo’lib, aralashtirib, parallel oqimlarda modelga uzatadi:

from torch.utils.data import Dataset, DataLoader

class MiniDataset(Dataset):
    def __init__(self, X, y):
        self.X, self.y = X, y
    def __len__(self):
        return len(self.X)
    def __getitem__(self, i):
        return self.X[i], self.y[i]

loader = DataLoader(MiniDataset(X, y), batch_size=32, shuffle=True)
for xb, yb in loader:
    ...   # har iteratsiyada 32 talik batch

Nega batch? Butun datasetni birdaniga GPU’ga sig’dirib bo’lmaydi, bittalab berish esa sekin va gradientlari shovqinli — batch (odatda 16–256) ikkisining o’rtasidagi oltin nuqta. shuffle=True faqat train to’plamida kerak: model misollar tartibini "yodlab" olmasligi uchun; validatsiyada aralashtirishning hojati yo’q.

Transform va normalizatsiya

Xom ma’lumot modelga berishdan oldin transformlardan o’tadi: o’lchamni birxillashtirish, tensorga o’girish va normalizatsiya — qiymatlarni kichik, o’rtachasi nolga yaqin oraliqqa keltirish. Normalizatsiyasiz katta qiymatli xususiyatlar gradientlarni "bosib ketadi" va o’qitish beqaror bo’ladi.

Train to’plamiga yana augmentatsiya qo’shiladi — tasodifiy burish, aylantirish, kesish: har epoch’da model rasmning biroz boshqacha variantini ko’radi, bu overfitting’ni kamaytiradi. Muhim qoida: augmentatsiya faqat train’da; validatsiya/test har doim "toza" o’tadi.

Train / validation / test

To’plam Vazifasi Model uni "ko’radimi"
Train og’irliklarni o’qitish ha, har epoch
Validation sozlamalarni tanlash, overfitting’ni kuzatish faqat baholashda
Test yakuniy, bir martalik baho eng oxirida, bir marta

Klassik xato — normalizatsiya statistikasini (o’rtacha, og’ish) butun datasetdan hisoblash: test ma’lumoti train’ga "sizib" kiradi (data leakage). Statistika faqat train’dan olinadi va o’sha ko’rinishda qolganlarga qo’llanadi.

MONAI: tibbiy tasvirlar

MONAI — PyTorch ustiga qurilgan, tibbiy tasvirlar (KT, MRT, rentgen) uchun maxsus kutubxona. Tibbiy formatlar oddiy PNG emas: NIfTI/DICOM fayllari 3D hajmli, voksel o’lchamlari (spacing) har xil, intensivlik shkalalari asbobga bog’liq. MONAI shunga mos tayyor transformlar beradi:

from monai.transforms import (Compose, LoadImage, EnsureChannelFirst,
                              ScaleIntensity, Resize)

pipe = Compose([
    LoadImage(image_only=True),   # NIfTI/DICOM ni o'qiydi
    EnsureChannelFirst(),         # (H, W, D) -> (1, H, W, D)
    ScaleIntensity(),             # intensivlikni 0..1 ga
    Resize((96, 96, 96)),         # yagona o'lchamga
])

G’oya tanish: bu ham Dataset + transform quvuri, faqat domenga moslashgan. Umumiy tamoyilni bilsangiz, yangi soha kutubxonasi — shunchaki yangi transform to’plami.

Amaliyot

  1. 100 misolli sun’iy (X, y) yasab, MiniDataset + DataLoader dan batch_size=16 bilan nechta batch chiqishini oldindan aytib, keyin sanab tekshiring.
  2. shuffle=True va False bilan birinchi batch’ni ikki marta chiqarib, farqni ko’rsating.
  3. Ixtiyoriy son massivini qo’lda normalizatsiya qiling: (x - mean) / std; natijaning o’rtachasi ≈ 0, og’ishi ≈ 1 ekanini tekshiring.
  4. Nega augmentatsiya validatsiyada qo’llanmasligini 2–3 jumlada yozing.
  5. Data leakage’ga o’zingizning misolingizni o’ylab toping (maslahat: vaqt qatorlari yoki bir bemorning bir nechta sur’ati).

Modul testi keyingi darsda.

Ma’lumot bilan ishlash — konspekt

Ma'lumot bilan ishlash Maqola

Dataset, DataLoader, transform va normalizatsiya konspekti; MONAI bilan tibbiy tasvirlarni yuklash va tayyorlash.

Eslatma yozish uchun saytga kiring.

Resurslar hozircha qo'shilmagan

O'qituvchi dars uchun qo'shimcha materiallarni qo'shganida shu yerda paydo bo'ladi.

Savol berish uchun saytga kiring.

Hozircha savollar yo'q

Bu dars yuzasidan birinchi savolni siz bering.