এটি পরামর্শ দেয় যে সমস্ত প্রশিক্ষণের উদাহরণগুলির একটি নির্দিষ্ট ক্রম দৈর্ঘ্য রয়েছে, যথা timesteps
।
এটি পুরোপুরি সঠিক নয়, যেহেতু সেই মাত্রা হতে পারে None
, যেমন পরিবর্তনশীল দৈর্ঘ্য। একক ব্যাচের মধ্যে আপনার অবশ্যই একই সংখ্যক টাইমস্টেপগুলি থাকতে হবে (এটি সাধারণত যেখানে আপনি 0-প্যাডিং এবং মাস্কিং দেখেন)। তবে ব্যাচের মধ্যে এ জাতীয় কোনও বাধা নেই। অনুমানের সময়, আপনার কোনও দৈর্ঘ্য থাকতে পারে।
উদাহরণ কোড যা প্রশিক্ষণ ডেটার এলোমেলো সময়-দৈর্ঘ্যের ব্যাচ তৈরি করে।
from keras.models import Sequential
from keras.layers import LSTM, Dense, TimeDistributed
from keras.utils import to_categorical
import numpy as np
model = Sequential()
model.add(LSTM(32, return_sequences=True, input_shape=(None, 5)))
model.add(LSTM(8, return_sequences=True))
model.add(TimeDistributed(Dense(2, activation='sigmoid')))
print(model.summary(90))
model.compile(loss='categorical_crossentropy',
optimizer='adam')
def train_generator():
while True:
sequence_length = np.random.randint(10, 100)
x_train = np.random.random((1000, sequence_length, 5))
# y_train will depend on past 5 timesteps of x
y_train = x_train[:, :, 0]
for i in range(1, 5):
y_train[:, i:] += x_train[:, :-i, i]
y_train = to_categorical(y_train > 2.5)
yield x_train, y_train
model.fit_generator(train_generator(), steps_per_epoch=30, epochs=10, verbose=1)
এবং এটি এটি প্রিন্ট করে। নোট করুন আউটপুট আকারগুলি (None, None, x)
ভেরিয়েবল ব্যাচের আকার এবং ভেরিয়েবল টাইমস্টেপ আকার নির্দেশ করছে।
__________________________________________________________________________________________
Layer (type) Output Shape Param #
==========================================================================================
lstm_1 (LSTM) (None, None, 32) 4864
__________________________________________________________________________________________
lstm_2 (LSTM) (None, None, 8) 1312
__________________________________________________________________________________________
time_distributed_1 (TimeDistributed) (None, None, 2) 18
==========================================================================================
Total params: 6,194
Trainable params: 6,194
Non-trainable params: 0
__________________________________________________________________________________________
Epoch 1/10
30/30 [==============================] - 6s 201ms/step - loss: 0.6913
Epoch 2/10
30/30 [==============================] - 4s 137ms/step - loss: 0.6738
...
Epoch 9/10
30/30 [==============================] - 4s 136ms/step - loss: 0.1643
Epoch 10/10
30/30 [==============================] - 4s 142ms/step - loss: 0.1441
Masking
উপেক্ষা করার জন্য প্যাডিং এবং সেট স্তর ব্যবহার করুন