ऑप्टिमाइज़ेशन पैरामीटर बदलना
अब ऑप्टिमाइज़ेशन के साथ हाथ गंदे करने का समय है. आप बहुत कम लर्निंग रेट, बहुत अधिक लर्निंग रेट, और एक "बिलकुल ठीक" लर्निंग रेट पर मॉडल को ऑप्टिमाइज़ करके देखेंगे. इस अभ्यास को चलाने के बाद के परिणाम देखें, और याद रखें कि लॉस फंक्शन का कम मान बेहतर होता है.
इन अभ्यासों के लिए, हमने आपके पिछले क्लासिफिकेशन मॉडलों (टाइटैनिक पर कौन बचता, इसकी भविष्यवाणी) से predictors और target वैल्यू पहले से लोड कर दी हैं. आप चाहेंगे कि हर बार लर्निंग रेट बदलने पर ऑप्टिमाइज़ेशन शुरू से हो, ताकि अलग-अलग लर्निंग रेट के प्रदर्शन की निष्पक्ष तुलना हो सके. इसलिए हमने get_new_model() नाम का एक फंक्शन बनाया है जो ऑप्टिमाइज़ करने के लिए एक अनऑप्टिमाइज़्ड मॉडल बनाता है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Deep Learning परिचय
अभ्यास निर्देश
tensorflow.keras.optimizersसेSGDइम्पोर्ट करें.- जिन लर्निंग रेट्स के साथ ऑप्टिमाइज़ करना है, उनकी एक लिस्ट
lr_to_testनाम से बनाएँ. इसमें लर्निंग रेट्स.000001,0.01, और1होने चाहिए. lr_to_testपर इटरेट करने के लिए एकforलूप का उपयोग करें:- एक नया, अनऑप्टिमाइज़्ड मॉडल बनाने के लिए
get_new_model()फंक्शन का उपयोग करें. SGD()कंस्ट्रक्टर का उपयोग करते हुएlr=lrकीवर्ड आर्ग्युमेंट के साथmy_optimizerनाम का एक ऑप्टिमाइज़र बनाएँ.- अपने मॉडल को कम्पाइल करें.
optimizerपैरामीटर को ऊपर बनाए गए SGD ऑब्जेक्ट पर सेट करें, और क्योंकि यह एक क्लासिफिकेशन समस्या है,lossपैरामीटर के लिए'categorical_crossentropy'का उपयोग करें. - अपने मॉडल को
predictorsऔरtargetके साथ फिट करें.
- एक नया, अनऑप्टिमाइज़्ड मॉडल बनाने के लिए
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Import the SGD optimizer
____
# Create list of learning rates: lr_to_test
lr_to_test = ____
# Loop over learning rates
for lr in lr_to_test:
print('\n\nTesting model with learning rate: %f\n'%lr )
# Build new model to test, unaffected by previous models
model = ____
# Create SGD optimizer with specified learning rate: my_optimizer
my_optimizer = ____
# Compile the model
____
# Fit the model
____