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

Bu modul kursning poydevori: chuqur o’rganish uchun zarur Python jihozlari va markaziy tushuncha — tensor.

Python va ma’lumotlar tahlili — nima uchun takror

Chuqur o’rganish amalda uch kutubxona ustida turadi: NumPy (massivlar), Pandas (jadval ma’lumoti) va Matplotlib (vizualizatsiya). Modelga berishdan oldin har qanday ma’lumot son massiviga aylanadi — rasm ham, matn ham, jadval ham. Shuning uchun massiv ko’nikmalari (shape o’qish, indekslash, vektorlashgan amallar) bu kursda har darsda kerak bo’ladi:

import numpy as np

rasm = np.random.default_rng(0).random((28, 28))   # "rasm": 28x28 piksel
print(rasm.shape, rasm.dtype, rasm.mean().round(3))

Natija:

(28, 28) float64 0.499

Tensor nima

Tensor — ko’p o’lchovli massivning umumlashgan nomi: 0 o’lchovli (skalyar), 1 o’lchovli (vektor), 2 o’lchovli (matritsa) va undan yuqori. Chuqur o’rganish freymvorklarida (PyTorch) tensor NumPy massiviga juda o’xshaydi, lekin ikki hal qiluvchi qo’shimchasi bor: GPU’da hisoblay oladi va gradientlarni avtomatik kuzata oladi (autograd) — ikkinchisi keyingi modulda ishga tushadi.

import torch

t = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
print(t.shape)        # torch.Size([2, 2])
print(t.dtype)        # torch.float32
print(t @ t)          # matritsa ko'paytmasi
n = t.numpy()         # NumPy bilan ikki tomonlama ko'prik
g = t.to("cuda")      # GPU bo'lsa — o'sha yerga ko'chirish

Odatiy o’lchov kelishuvlari yodda tursin: rasmlar to’plami — (batch, kanal, balandlik, kenglik), masalan (32, 3, 224, 224); jadval ma’lumoti — (batch, xususiyatlar). Ko’pchilik xatolar aynan shu o’lchamlarning mos kelmasligidan chiqadi — RuntimeError: mat1 and mat2 shapes cannot be multiplied ko’rsangiz, birinchi ish print(x.shape).

NumPy massiv va PyTorch tensor

NumPy ndarray PyTorch tensor
Qurilma faqat CPU CPU va GPU (.to("cuda"))
Gradient yo’q requires_grad=True bilan avtomatik
Standart float float64 float32
O’zaro o’tish torch.from_numpy / .numpy()

float32 — chuqur o’rganish standarti: aniqligi yetarli, xotira va tezlikda ikki barobar yutuq. NumPy’dan kelgan float64 tensorni ko’pincha .float() bilan o’girib olish kerak bo’ladi — aks holda turlar mos kelmay xato beradi.

Amaliyot

  1. 0–9 sonlaridan vektor-tensor yasang; shape, dtype, sum() ni chiqaring.
  2. (3, 4) o’lchamli tasodifiy tensor yaratib (torch.rand), uni transpozitsiya qiling va ikkala shape’ni solishtiring.
  3. NumPy massivini torch.from_numpy bilan tensorga o’girib, dtype’i nima bo’lganini tekshiring; .float() bilan float32 ga keltiring.
  4. (2, 3) va (3, 2) tensorlarni @ bilan ko’paytiring; (2, 3) @ (2, 3) urinib, chiqqan xatoni o’qib tushuntiring.
  5. (32, 3, 224, 224) shape’li nol tensor yasang va har bir o’lchamning ma’nosini izohda yozing.

Modul testi keyingi darsda.

Asoslar: Python va tensorlar — konspekt

Asoslar: Python va tensorlar Maqola

Chuqur o’rganish uchun Python va tensor asoslari konspekti: NumPy’dan PyTorch tensorlariga o’tish, shape, dtype va GPU.

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.