2017-02-19 13 views
5

मैं वास्तव में केरास के लिए नया हूं इसलिए मेरी क्वेरी थोड़ा मूर्खतापूर्ण है तो मुझे माफ़ कर दो। मैंने डिफ़ॉल्ट तरीकों का उपयोग करके अपने सिस्टम में केरास स्थापित किया और यह ठीक काम करता है। मैं केरास में एक नया अनुकूलक जोड़ना चाहता हूं ताकि मैं model.compile फ़ंक्शन के तहत आसानी से "optimizer = mynewone" का उल्लेख कर सकूं। मैं केरास में "optimizer.py" कोड बदलने और यह सुनिश्चित करने के लिए कैसे करूं कि परिवर्तन मेरे केरास पर्यावरण पर दिखाई देता है।केरास ऑप्टिमाइज़र कोड को कैसे बदलें

मैं कोड मैं निम्नलिखित त्रुटि मिलती है में rmsprops को rmsprop से अनुकूलक का नाम बदलने के मान लीजिए:

model.compile(loss='binary_crossentropy', optimizer='rmsprops', metrics= ['accuracy']) 
Traceback (most recent call last): 

File "<ipython-input-33-40773d534448>", line 1, in <module> 
model.compile(loss='binary_crossentropy', optimizer='rmsprops', metrics=['accuracy']) 

File "/home/kiran/anaconda/lib/python3.5/site-packages/keras/models.py", line 589, in compile 
**kwargs) 

File "/home/kiran/anaconda/lib/python3.5/site-packages/keras/engine/training.py", line 469, in compile 
self.optimizer = optimizers.get(optimizer) 

File "/home/kiran/anaconda/lib/python3.5/site-packages/keras/optimizers.py", line 614, in get 
# Instantiate a Keras optimizer 

File "/home/kiran/anaconda/lib/python3.5/site-packages/keras/utils/generic_utils.py", line 16, in get_from_module 
str(identifier)) 

ValueError: Invalid optimizer: rmsprops 

फिर जब मैं optimizers.py पर क्लिक करें मैं द्वारा विकसित कोड प्राप्त यहाँ मैं क्या करने की कोशिश की है मेरे पर्यावरण में केरास। उसके बाद कोड में मैंने "rmsprop" कीवर्ड वाले सभी "rmsprop" कीवर्ड को प्रतिस्थापित किया और फ़ाइल को सहेजा। तो मैंने सोचा कि मेरे पास मेरे सिस्टम में अद्यतन optimizers.py होना चाहिए। लेकिन जब मैं अपनी मूल फ़ाइल पर वापस जाता हूं और model.compile चलाता हूं तो यह वही त्रुटि फेंकता है।

किसी भी मदद की वास्तव में सराहना की जाएगी। अग्रिम में धन्यवाद।

उत्तर

0

क्या आप वाकई एक नया अनुकूलक चाहते हैं जो आप चाहते हैं? एक कस्टम उद्देश्य समारोह नहीं है? उद्देश्य कस्टम हो सकते हैं इसे परिभाषित करना आसान है, ऑप्टिमाइज़र ट्रिकियर हैं।

बहुत से पैरामीटर के साथ पहले से ही बड़ी संख्या में अनुकूलक हैं। हालांकि अगर आप वास्तव में उस सड़क पर जाना चाहते हैं तो मैं आपको टेंसफोर्लो जाने के लिए सलाह दूंगा! फिर आप this in Keras

यह सब कुछ मैं आपके लिए कर सकता हूं, लेकिन शायद एक और तरीका है जिसे मैं नहीं जानता।

1

मुझे लगता है कि आपका दृष्टिकोण जटिल है और यह होना आवश्यक नहीं है।

class MyOptimizer(Optimizer): 
    optimizer functions here. 

फिर अपने मॉडल में यह दृष्टांत के लिए आप यह कर सकते हैं: मान लीजिए कि आप keras.optimizers.Optimizer उपवर्गीकरण द्वारा अपने स्वयं के अनुकूलक लागू मान लीजिए

myOpt = MyOptimizer() 
model.compile(loss='binary_crossentropy', optimizer=myOpt, metrics= ['accuracy']) 

बस के रूप में अपने अनुकूलक का एक उदाहरण पारित model.compile का अनुकूलक पैरामीटर और यही वह है, केरा अब आपके अनुकूलक का उपयोग करेगा।

संबंधित मुद्दे