Workflow
L'essència de l'aprenentatge automàtic i l'aprenentatge profund és agafar dades del passat, construir un algoritme (com una xarxa neuronal) per descobrir patrons i utilitzar els patrons descoberts per predir el futur.
Introducció
Section titled “Introducció”Construirem un model PyTorch que aprèn el patró d’una línia recta i el reprodueix.
uv init --python 3.12 workflowcd workflowuv add matplotlib torch torchvision
Dades (preparació i càrrega)
Section titled “Dades (preparació i càrrega)”Les “dades” en aprenentatge automàtic poden ser gairebé qualsevol cosa que puguis imaginar. Una taula de números (com un full de càlcul Excel gran), imatges de qualsevol tipus, vídeos (YouTube té moltes dades!), arxius d’àudio com cançons o podcasts, estructures de proteïnes, text i més.
L’aprenentatge automàtic és un joc de dues parts:
- Convertir les teves dades, siguin quines siguin, en números (una representació).
- Triar o construir un model per aprendre la representació de la millor manera possible.
De vegades, els dos passos es poden fer alhora.
Però què passa si no tens dades?
Bé, aquí és on som ara.
Sense dades.
Però en podem crear.
Crearem les nostres dades com una línia recta.
Utilitzarem la regressió lineal per crear les dades amb paràmetres coneguts (coses que poden ser apreses per un model) i després utilitzarem PyTorch per veure si podem construir un model per estimar aquests paràmetres utilitzant el gradient descent.
No et preocupis si els termes anteriors no tenen gaire sentit ara, els veurem en acció.
import torchimport matplotlib.pyplot as plt
# Create datax = torch.arange(0, 1, 0.02).unsqueeze(dim=1)y = 0.7 * x + 0.3
plt.plot(x, y)plt.show()
Ara, en lloc de ser només números en una pàgina, les nostres dades són una línia recta.
Ara ens mourem cap a la construcció d’un model que pugui aprendre la relació entre x
(features) i y
(labels).
Dividir les dades en conjunts d’entrenament i prova
Section titled “Dividir les dades en conjunts d’entrenament i prova”Abans de construir un model, hem de dividir-lo.
Un dels passos més importants en un projecte d’aprenentatge automàtic és crear un conjunt d’entrenament i un de prova (i quan es requereixi, un conjunt de validació).
Cada divisió del conjunt de dades serveix per a un propòsit específic:
Divisió | Propòsit | Quantitat del total de dades | Amb quina freqüència s’utilitza? |
---|---|---|---|
Conjunt d’entrenament | El model aprèn d’aquestes dades. | ~60-80% | Sempre |
Conjunt de validació | El model s’ajusta amb aquestes dades | ~10-20% | Sovint però no sempre |
Conjunt de prova | El model s’avalua amb aquestes dades per provar el que ha après | ~10-20% | Sempre |
Per ara, utilitzarem només un conjunt d’entrenament i un de prova, això significa que tindrem un conjunt de dades perquè el nostre model aprengui i un altre per avaluar-lo.
Podem crear-los dividint els nostres tensors x
i y
.
torch.utils.data.dataset.random_split
import torchimport matplotlib.pyplot as plt
# Create data
x = torch.arange(0, 1, 0.02).unsqueeze(dim=1)y = 0.7 * x + 0.3
# Create train/test split
train_split = int(0.8 * len(x)) # 80% of data used for training set, 20% for testingx_train, y_train = x[:train_split], y[:train_split]x_test, y_test = y[train_split:], y[train_split:]
# Plots training data and test data.
plt.scatter(x_train, y_train, label="Training data")plt.scatter(x_test, y_test, label="Testing data")plt.legend()
plt.show()
Perfecte, tenim 40 mostres per a l’entrenament (x_train
i y_train
) i 10 mostres per a les proves (x_test
i y_test
).
El model que crearem intentarà aprendre la relació entre x_train
i y_train
, i després avaluarem el que ha après amb x_test
i y_test
.
Construir el model
Section titled “Construir el model”Ara que tenim algunes dades, construirem un model per utilitzar els punts blaus per predir els punts verds.
Anirem directament al gra.
Primer escriurem el codi i després ho explicarem tot.
Replicarem un model estàndard de regressió lineal utilitzant PyTorch pur.
We’re going to get torch
, torch.nn
(nn stands for neural network and this package contains the building blocks for creating neural networks in PyTorch) and matplotlib
import torchfrom torch import nn # nn contains all of PyTorch's building blocks for neural networksimport matplotlib.pyplot as plt
El contingut d'aquest lloc web té llicència CC BY-NC-ND 4.0.
©2022-2025 xtec.dev