PyTorch ile dizileri işleme

PyTorch ile Orta Düzey Deep Learning

Michal Oleszak

Machine Learning Engineer

Sıralı veriler

  • Zaman veya uzayda sıralı
  • Veri noktalarının sırası aralarındaki bağımlılıkları içerir
  • Sıralı veri örnekleri:
    • Zaman serileri
    • Metin
    • Ses dalgaları

Bir bilgisayar ekranında görüntülenen bir zaman serisi.

Açık bir kitap.

Bir dizi hoparlör ve üzerinde ses işleme yazılımı açık bir bilgisayar ekranı.

PyTorch ile Orta Düzey Deep Learning

Elektrik tüketimi tahmini

  • Görev: geçmiş örüntülere göre gelecekteki elektrik tüketimini tahmin et

  • Elektrik tüketimi veri kümesi:

                 timestamp  consumption
0      2011-01-01 00:15:00    -0.704319
1      2011-01-01 00:30:00    -0.704319
...                    ...          ...
140254 2014-12-31 23:45:00    -0.095751
140255 2015-01-01 00:00:00    -0.095751
1 Trindade,Artur. (2015). ElectricityLoadDiagrams20112014. UCI Machine Learning Repository. https://doi.org/10.24432/C58C86.
PyTorch ile Orta Düzey Deep Learning

Eğitim-test bölmesi

  • Zaman serilerinde rastgele bölme yok!
  • Önden bakış yanlılığı: model geleceği biliyor olur
  • Çözüm: zamana göre böl

Maviyle 2011-2013 eğitim kümesi ve turuncuyla 2014 test kümesi görsel olarak ayrılmış.

PyTorch ile Orta Düzey Deep Learning

Diziler oluşturma

  • Dizi uzunluğu = bir eğitim örneğindeki veri noktası sayısı
    • 24 × 4 = 96 -> son 24 saati al
  • Bir sonraki tek veri noktasını tahmin et

Eşit uzunlukta mavi giriş dizileri ve yeşil hedef değeri görsel olarak ayrılmış.

PyTorch ile Orta Düzey Deep Learning

Python’da diziler oluşturma

import numpy as np

def create_sequences(df, seq_length):

xs, ys = [], []
for i in range(len(df) - seq_length):
x = df.iloc[i:(i+seq_length), 1] y = df.iloc[i+seq_length, 1]
xs.append(x) ys.append(y)
return np.array(xs), np.array(ys)
  • Girdi: veri ve dizi uzunluğu
  • Girdi ve hedef listelerini başlat
  • Veri noktaları üzerinde yinele
  • Girdi ve hedefi tanımla
  • Listelere ekle
  • NumPy dizileri olarak döndür
PyTorch ile Orta Düzey Deep Learning

TensorDataset

Eğitim örnekleri oluştur

X_train, y_train = create_sequences(train_data, seq_length)
print(X_train.shape, y_train.shape)
(34944, 96) (34944,)

Torch Dataset’e dönüştür

from torch.utils.data import TensorDataset

dataset_train = TensorDataset(
    torch.from_numpy(X_train).float(),
    torch.from_numpy(y_train).float(),
)
PyTorch ile Orta Düzey Deep Learning

Diğer sıralı verilere uygulanabilirlik

Aynı teknikler şu dizilere de uygulanır:

  • Büyük Dil Modelleri
  • Konuşma tanıma
PyTorch ile Orta Düzey Deep Learning

Hadi pratik yapalım!

PyTorch ile Orta Düzey Deep Learning

Preparing Video For Download...