PyTorch के साथ सीक्वेंस हैंडल करना

इंटरमीडिएट Deep Learning with PyTorch

Michal Oleszak

Machine Learning Engineer

सीक्वेंशियल डेटा

  • समय या स्थान में क्रमबद्ध
  • डेटा पॉइंट्स का क्रम आपस में निर्भरताएँ रखता है
  • सीक्वेंशियल डेटा के उदाहरण:
    • टाइम सीरीज़
    • टेक्स्ट
    • ऑडियो वेव्स

कंप्यूटर स्क्रीन पर दिखाई गई एक टाइम सीरीज़.

खुली हुई एक किताब.

लाउडस्पीकरों का सेट और स्क्रीन पर खुला ऑडियो प्रोसेसिंग सॉफ्टवेयर.

इंटरमीडिएट Deep Learning with PyTorch

बिजली खपत पूर्वानुमान

  • टास्क: पिछले पैटर्न के आधार पर भविष्य की बिजली खपत का अनुमान लगाएँ

  • बिजली खपत डेटासेट:

                 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.
इंटरमीडिएट Deep Learning with PyTorch

ट्रेन-टेस्ट स्प्लिट

  • टाइम सीरीज़ में रैंडम स्प्लिट न करें!
  • Look-ahead bias: मॉडल के पास भविष्य की जानकारी होती है
  • समाधान: समय के आधार पर स्प्लिट करें

नीले रंग में 2011-2013 के ट्रेन सेट और नारंगी में 2014 के टेस्ट सेट को अलग-अलग दिखाया गया है.

इंटरमीडिएट Deep Learning with PyTorch

सीक्वेंस बनाना

  • सीक्वेंस लंबाई = एक ट्रेनिंग उदाहरण में डेटा पॉइंट्स की संख्या
    • 24 × 4 = 96 -> पिछली 24 घंटों को लें
  • अगला एकल डेटा पॉइंट प्रेडिक्ट करें

समान लंबाई के इनपुट सीक्वेंस नीले में और लक्ष्य मान हरे में दिखाए गए हैं.

इंटरमीडिएट Deep Learning with PyTorch

Python में सीक्वेंस बनाना

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)
  • डेटा और सीक्वेंस लंबाई इनपुट लें
  • इनपुट्स और टार्गेट्स की लिस्ट इनिशियलाइज़ करें
  • डेटा पॉइंट्स पर इटररेट करें
  • इनपुट्स और टार्गेट तय करें
  • प्री-इनिशियलाइज़्ड लिस्ट्स में जोड़ें
  • इनपुट्स और टार्गेट्स NumPy arrays के रूप में लौटाएँ
इंटरमीडिएट Deep Learning with PyTorch

TensorDataset

ट्रेनिंग उदाहरण बनाएँ

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

उन्हें Torch Dataset में बदलें

from torch.utils.data import TensorDataset

dataset_train = TensorDataset(
    torch.from_numpy(X_train).float(),
    torch.from_numpy(y_train).float(),
)
इंटरमीडिएट Deep Learning with PyTorch

अन्य सीक्वेंशियल डेटा पर उपयोगिता

यही तकनीकें अन्य सीक्वेंस पर भी लागू होती हैं:

  • Large Language Models
  • Speech recognition
इंटरमीडिएट Deep Learning with PyTorch

अभ्यास करते हैं!

इंटरमीडिएट Deep Learning with PyTorch

Preparing Video For Download...