मैं सीएनएन मॉडल बनाने की कोशिश कर रहा हूं, लेकिन कम सटीकता है :(
इसलिए, जब सत्यापन सटीकता में सुधार होना बंद हो जाता है, तो मैं SGD सीखने की दर को कम करना चाहता हूं।
मैं इसे कैसे बना और संकलित कर सकता हूं ??
1 उत्तर
यदि आप model.train_on_batch पर लूप करते हैं तो आप सीखने की दर को मैन्युअल रूप से बदल सकते हैं:
import keras.backend as K
from keras.optimizers import Adam
import sys
epochs = 50
batch_size = 32
iterations_per_epoch = len(x_train) // batch_size
lr = 0.01
model.compile(optimizer=Adam(lr), loss='some loss')
min_val_loss = sys.float_info.max
for epoch in range(epochs):
for batch in range(iterations_per_epoch):
model.train_on_batch(x_train, y_train)
val_loss = model.evaluate(x_val, y_val)
if val_loss >= min_val_loss:
K.set_value(model.optimizer.lr, lr / 2.)
lr /= 2.
else:
min_val_loss = val_loss
एक बार सत्यापन हानि कम होने के बाद सीखने की दर को कम करने का यह एक बहुत ही भोला तरीका है। मैं थोड़ा अधिक परिष्कृत नियम लागू करने का सुझाव दूंगा जैसे कि पिछले एक्स बैचों के लिए सत्यापन हानि कम नहीं हुई थी।
संबंधित सवाल
नए सवाल
keras
केरस एक न्यूरल नेटवर्क लाइब्रेरी है जो पायथन और आर में एक उच्च-स्तरीय एपीआई प्रदान करता है। इस टैग का उपयोग इस एपीआई से संबंधित प्रश्नों के लिए करें। कृपया भाषा / बैकएंड ([अजगर], [r], [टेंसोरफ़्लो], [थीनो], [cntk]) का उपयोग करने के लिए टैग भी शामिल करें। यदि आप टेंसरफ़्लो के अंतर्निर्मित कार्स का उपयोग कर रहे हैं, तो [tf.keras] टैग का उपयोग करें।