समस्या विवरण
Keras Sequential मॉडल से अंतिम लेयर को हटाने के लिए pop() विधि का उपयोग करें।
कोड उदाहरण
from tensorflow import keras
from tensorflow.keras import layers
# एक Sequential मॉडल बनाएं
model = keras.Sequential([
layers.Dense(64, activation='relu', input_shape=(10,)),
layers.Dense(32, activation='relu'),
layers.Dense(1)
])
print(f"लेयर्स की संख्या (पहले): {len(model.layers)}") # 3
# अंतिम लेयर हटाएं
model.pop()
print(f"लेयर्स की संख्या (बाद में): {len(model.layers)}") # 2
# शेष लेयर्स देखें
for i, layer in enumerate(model.layers):
print(f"Layer {i}: {layer.name}, output shape: {layer.output_shape}")
आउटपुट
लेयर्स की संख्या (पहले): 3 लेयर्स की संख्या (बाद में): 2 Layer 0: dense, output shape: (None, 64) Layer 1: dense_1, output shape: (None, 32)
महत्वपूर्ण बिंदु
model.pop()केवल **Sequential** मॉडल पर काम करता है (Functional API पर नहीं)।- यह **अंतिम** लेयर को हटाता है और मॉडल को इन-प्लेस संशोधित करता है।
- हटाने के बाद मॉडल को पुनः कंपाइल करने की आवश्यकता नहीं होती (जब तक नई आउटपुट शेप संगत है)।
- एकाधिक लेयर्स हटाने के लिए लूप में
pop()कॉल करें।
सावधानी
# यदि मॉडल कंपाइल्ड है और आप लेयर हटाते हैं, # तो मॉडल का आउटपुट शेप बदल जाता है। # पुनः प्रशिक्षण/मूल्यांकन से पहले सुनिश्चित करें कि आकार संगत है। model.compile(optimizer='adam', loss='mse') model.pop() # आउटपुट शेप बदल गया # अब model.predict() काम करेगा लेकिन loss फंक्शन आकार बेमेल दे सकता है # यदि नया आउटपुट लेबल से मेल नहीं खाता।