सीक्वेंस जनरेट करना
सीक्वेंशियल डेटा पर न्यूरल नेटवर्क्स को ट्रेन करने के लिए, आपको पहले उसका प्री-प्रोसेस करना होगा. आप डेटा को inputs-target जोड़ों में बाँटेंगे, जहाँ inputs कुछ लगातार डेटा पॉइंट्स होंगे और target अगला डेटा पॉइंट होगा.
आपका कार्य इसे करने के लिए create_sequences() नाम का एक फंक्शन परिभाषित करना है. इनपुट के रूप में, यह DataFrame df में स्टोर किया गया डेटा और seq_length (इनपुट्स की लंबाई) लेगा. आउटपुट के रूप में, इसे दो NumPy arrays लौटाने चाहिए: एक इनपुट सीक्वेंसेज़ के साथ और दूसरा उनके संबंधित targets के साथ.
याद दिलाने के लिए, DataFrame df कुछ ऐसा दिखता है:
timestamp consumption
0 2011-01-01 00:15:00 -0.704319
... ... ...
140255 2015-01-01 00:00:00 -0.095751
यह अभ्यास पाठ्यक्रम का हिस्सा है
इंटरमीडिएट Deep Learning with PyTorch
अभ्यास निर्देश
- डेटा पॉइंट्स की संख्या में से इनपुट सीक्वेंस की लंबाई घटाकर बनी रेंज पर इटरेट कीजिए.
- इनपुट
xकोdfकेiवीं पंक्ति से लेकरi + seq_lengthवीं पंक्ति तक और इंडेक्स1वाले कॉलम की स्लाइस के रूप में परिभाषित कीजिए. - टार्गेट
yकोdfमें रो इंडेक्सi + seq_lengthऔर कॉलम इंडेक्स1की स्लाइस के रूप में परिभाषित कीजिए.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
import numpy as np
def create_sequences(df, seq_length):
xs, ys = [], []
# Iterate over data indices
for i in range(____):
# Define inputs
x = df.iloc[____, ____]
# Define target
y = df.iloc[____, ____]
xs.append(x)
ys.append(y)
return np.array(xs), np.array(ys)