এটি পরামর্শ দেয় যে সমস্ত প্রশিক্ষণের উদাহরণগুলির একটি নির্দিষ্ট ক্রম দৈর্ঘ্য রয়েছে, যথা 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উপেক্ষা করার জন্য প্যাডিং এবং সেট স্তর ব্যবহার করুন