1) मैं TF बैकएंड के साथ केरस में एक मॉडल और परतों का नाम बदलने की कोशिश करता हूं, क्योंकि मैं एक स्क्रिप्ट में कई मॉडल का उपयोग कर रहा हूं। ऐसा लगता है कि क्लास मॉडल में संपत्ति model.name है, लेकिन इसे बदलते समय मुझे "विशेषता त्रुटि: विशेषता सेट नहीं कर सकता" मिलता है। यहां क्या समस्या है?

2) इसके अतिरिक्त, मैं अनुक्रमिक एपीआई का उपयोग कर रहा हूं और मैं परतों को एक नाम देना चाहता हूं, जो कार्यात्मक एपीआई के साथ संभव है, लेकिन मुझे अनुक्रमिक एपीआई के लिए कोई समाधान नहीं मिला। क्या कोई जानता है कि अनुक्रमिक एपीआई के लिए इसे कैसे किया जाए?

अद्यतन टू २): परतों का नामकरण काम करता है, हालाँकि ऐसा लगता है कि यह प्रलेखित नहीं है। बस तर्क नाम जोड़ें, उदा। model.add(Dense(...,...,name="hiddenLayer1"). सावधान रहें, समान नाम वाली परतें भार साझा करती हैं!

21
user3921232 29 मार्च 2018, 10:20

8 जवाब

सबसे बढ़िया उत्तर

मॉडल नाम के बारे में आपकी पहली समस्या मेरी मशीन पर प्रतिलिपि प्रस्तुत करने योग्य नहीं है। मैं इसे इस तरह सेट कर सकता हूं। कई बार ये त्रुटियां सॉफ़्टवेयर संस्करणों के कारण होती हैं।

model=Sequential()
model.add(Dense(2,input_shape=(....)))
model.name="NAME"

जहाँ तक परतों के नामकरण की बात है, आप इसे इस तरह से अनुक्रमिक मॉडल में कर सकते हैं

model=Sequential()
model.add(Dense(2,input_shape=(...),name="NAME"))
20
user239457 29 मार्च 2018, 07:51

1 के लिए), मुझे लगता है कि आप सही नाम और मौजूदा संरचना के साथ एक और मॉडल बना सकते हैं। फिर मौजूदा मॉडल की परतों से नए मॉडल की परतों तक वज़न सेट करें।

-4
saintthor 3 जुलाई 2018, 14:35

विस्तृत उत्तर यहां है पूर्व-प्रशिक्षित मॉडल का नाम कैसे बदलें? ValueError 'प्रशिक्षित मॉडल' एक मान्य कार्यक्षेत्र नाम नहीं है

जब हम मॉडल विकसित कर रहे हों और उसे प्रशिक्षित करने के लिए तैयार कर रहे हों तो हम model.name = "Model_Name" का उपयोग कर सकते हैं। हम परतों को नाम भी दे सकते हैं। भूतपूर्व:

model = Sequential()
model.name = "My_Model" #Naming model
model.add(Dense(2,input_shape=(...),name="Name") #Naming layer
0
OMKAR GURAV 8 सितंबर 2020, 04:24

किसी मॉडल में केवल एक परत का नाम बदलने के लिए आप निम्न पंक्तियों का उपयोग कर सकते हैं:

my_model.layers[0]._name = 'my_new_name_for_the_first_layer'
my_model.layers[1]._name = 'my_new_name_for_the_second_layer'
my_model.layers[-1]._name = 'my_new_name_for_the_last_layer'
1
Adi Shumely 16 नवम्बर 2020, 14:01

TF2.2.0 में एक केरस मॉडल का नाम बदलने के लिए:

model._name = "newname"

मुझे नहीं पता कि यह एक बुरा विचार है या नहीं - वे नहीं चाहते कि आप इसे करें, लेकिन यह काम करता है। पुष्टि करने के लिए, model.summary() पर कॉल करें और आपको नया नाम दिखाई देगा।

2
markemus 11 सितंबर 2020, 20:30

प्रश्न के शीर्षक के संबंध में सभी विकल्पों को कवर करने के लिए, यदि आप केरस कार्यात्मक एपीआई का उपयोग कर रहे हैं तो आप मॉडल और परतों के नाम को परिभाषित कर सकते हैं:

inputs = Input(shape=(value, value))

output_layer = Dense(2, activation = 'softmax', name = 'training_output')(dropout_new_training_layer)

model = Model(inputs= inputs, outputs=output_layer, name="my_model")
2
Joel Carneiro 30 जिंदा 2019, 15:21

User239457 का उत्तर केवल मानक केरस

अगर आप Tensorflow Keras का उपयोग करना चाहते हैं, तो आप इसे इस तरह कर सकते हैं:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

model = Sequential(name='Name')
model.add(Dense(2,input_shape=(5, 1)))
8
Simon Sander 30 जुलाई 2018, 11:21

Tf.keras के साथ model.layers के नाम बदलने के लिए आप निम्न पंक्तियों का उपयोग कर सकते हैं:

for layer in model.layers:
    layer._name = layer.name + str("_2")

मुझे दो-इनपुट मॉडल मामले में इसकी आवश्यकता थी और "विशेषता त्रुटि: विशेषता सेट नहीं कर सकता" में भी भाग गया। बात यह है कि एक अंतर्निहित छिपी विशेषता _name है, जो संघर्ष का कारण बनती है।

26
ChriSquared 4 जून 2019, 12:42