चेकपॉइंट से वेट्स लोड और पुनः मूल्यांकन
सेव किए गए चेकपॉइंट से वेट्स लोड करके मॉडल को पुनः स्थापित करें और टेस्ट डेटा पर मूल्यांकन करें।
कोड उदाहरण
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
import math as m
def create_model():
model = keras.Sequential([
layers.Dense(64, activation='relu', input_shape=(784,)),
layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
return model
# मान लें चेकपॉइंट पथ
checkpoint_path = "training_2/cp-0004.ckpt" # हर 4 एपोक पर सेव किया गया
# नया मॉडल इंस्टेंस बनाएं (समान आर्किटेक्चर)
model = create_model()
# चेकपॉइंट से वेट्स लोड करें
print("वेट्स लोड किए जा रहे हैं...")
model.load_weights(checkpoint_path)
# पुनः मूल्यांकन करें
print("मॉडल पुनः मूल्यांकन किया जा रहा है...")
loss, acc = model.evaluate(test_images, test_labels, verbose=2)
print(f"रिस्टोर्ड मॉडल एक्यूरेसी: {100 * acc:.3f}%")
आउटपुट
वेट्स लोड किए जा रहे हैं... मॉडल पुनः मूल्यांकन किया जा रहा है... 32/32 - 0s - loss: 0.4066 - sparse_categorical_accuracy: 0.8740 रिस्टोर्ड मॉडल एक्यूरेसी: 87.400%
चरण-दर-चरण
- समान आर्किटेक्चर वाला नया मॉडल इंस्टेंस बनाएं (
create_model())। load_weights(checkpoint_path)से विशिष्ट चेकपॉइंट लोड करें।evaluate()से टेस्ट लॉस और एक्यूरेसी प्राप्त करें।- परिणाम प्रिंट/लॉग करें।
महत्वपूर्ण नोट्स
- आर्किटेक्चर **सटीक रूप से समान** होना चाहिए (लेयर क्रम, यूनिट्स, एक्टिवेशन, इनपुट शेप)।
load_weights()केवल वेट्स लोड करता है; ऑप्टिमाइज़र स्टेट **नहीं** (उसके लिएmodel.save()/load_model()उपयोग करें)।verbose=2प्रति बैच एक लाइन प्रिंट करता है।
सामान्य पैटर्न: सर्वश्रेष्ठ चेकपॉइंट लोड करें
# सर्वश्रेष्ठ चेकपॉइंट स्वचालित खोजें
best_checkpoint = tf.train.latest_checkpoint('training_2/')
# या मॉनिटर-मेट्रिक आधारित
best_checkpoint = 'training_2/cp-0012.ckpt' # मैन्युअल चयन
model = create_model()
model.load_weights(best_checkpoint)
loss, acc = model.evaluate(test_images, test_labels)
print(f"सर्वश्रेष्ठ मॉडल एक्यूरेसी: {100*acc:.2f}%")