Vanishing gradient समस्या
दूसरी संभावित gradient समस्या तब होती है जब gradients vanish हो जाते हैं, यानी शून्य की ओर चले जाते हैं। इसे सुलझाना काफी कठिन है, क्योंकि इसे पहचानना आसान नहीं होता। अगर हर स्टेप पर loss फंक्शन में सुधार नहीं हो रहा है, तो क्या इसकी वजह यह है कि gradients शून्य हो गए और weights अपडेट नहीं हुए? या फिर मॉडल सीख ही नहीं पा रहा है?
यह समस्या RNN मॉडलों में ज़्यादा दिखती है जब long memory की ज़रूरत होती है (लंबे वाक्यों के साथ).
इस अभ्यास में आप यह समस्या IMDB डेटा पर देखेंगे, जहाँ लंबे वाक्य चुने गए हैं। डेटा X और y वैरिएबल्स में लोड है, और क्लासेज़ Sequential, SimpleRNN, Dense तथा matplotlib.pyplot plt नाम से उपलब्ध हैं। मॉडल को 100 epochs पर पहले से train किया गया है; उसके weights और history फ़ाइल model_weights.h5 और वैरिएबल history में संग्रहीत हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)
अभ्यास निर्देश
- मॉडल में एक
SimpleRNNलेयर जोड़ें. .load_weights()मेथड का उपयोग करके मॉडल पर pre-trained weights लोड करें.- प्लॉट में training डेटा की accuracy, जो ऐट्रिब्यूट
'acc'में उपलब्ध है, जोड़ें. .show()मेथड का उपयोग करके प्लॉट प्रदर्शित करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Create the model
model = Sequential()
model.add(____(units=600, input_shape=(None, 1)))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='sgd', metrics=['accuracy'])
# Load pre-trained weights
model.____('model_weights.h5')
# Plot the accuracy x epoch graph
plt.plot(history.history[____])
plt.plot(history.history['val_acc'])
plt.legend(['train', 'val'], loc='upper left')
plt.____()