Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

केरस (Keras) में विशिष्ट एपोक अंतराल पर वेट्स सेव करना

आवधिक चेकपॉइंटिंग: हर N एपोक पर वेट्स सेव करें

ModelCheckpoint के save_freq पैरामीटर से बैच/एपोक आवृत्ति नियंत्रित करें।

कोड उदाहरण

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.callbacks import ModelCheckpoint
import os

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

# हर 4 एपोक पर सेव करने के लिए कॉन्फ़िगर करें
batch_size = 32
checkpoint_path = "training_2/cp-{epoch:04d}.ckpt"
checkpoint_dir = os.path.dirname(checkpoint_path)
os.makedirs(checkpoint_dir, exist_ok=True)

# save_freq = 4 एपोक × बैच_साइज = 4 * 32 = 128 बैच
cp_callback = ModelCheckpoint(
    filepath=checkpoint_path,
    verbose=1,
    save_weights_only=True,
    save_freq=4 * batch_size  # हर 4 एपोक (बैच-आधारित गणना)
)

print("कॉलबैक बनाया गया: हर 4 एपोक पर वेट्स सेव करेगा")

model = create_model()

# एपोक 0 पर प्रारंभिक वेट्स सेव करें
model.save_weights(checkpoint_path.format(epoch=0))
print(f"प्रारंभिक वेट्स सेव किए गए: {checkpoint_path.format(epoch=0)}")

# प्रशिक्षण (मान लें)
# model.fit(train_images, train_labels, epochs=50, callbacks=[cp_callback])

आउटपुट

कॉलबैक बनाया गया: हर 4 एपोक पर वेट्स सेव करेगा
प्रारंभिक वेट्स सेव किए गए: training_2/cp-0000.ckpt

save_freq गणना

  • save_freq='epoch' — हर एपोक के अंत में।
  • save_freq=N (int) — हर N **बैच**।
  • हर K एपोक के लिए: save_freq = K * batch_size।

अद्वितीय चेकपॉइंट नाम

{epoch:04d} प्लेसहोल्डर से प्रत्येक चेकपॉइंट का अद्वितीय नाम होता है (cp-0004.ckpt, cp-0008.ckpt, ...), जिससे ओवरराइट नहीं होता।

अन्य कॉलबैक विकल्प

कॉलबैकउपयोग
EarlyStoppingसुधार न होने पर प्रशिक्षण रोकें
ReduceLROnPlateauलर्निंग रेट घटाएं
TensorBoardलॉग विज़ुअलाइज़ेशन
CSVLoggerमेट्रिक्स CSV में लॉग करें
LearningRateSchedulerकस्टम LR शेड्यूल
  1. MNIST डेटासेट के लिए TensorFlow का उपयोग करके मॉडल कैसे परिभाषित करें? MNIST डेटासेट के लिए TensorFlow का उपयोग करके मॉडल कैसे परिभाषित करें?

    TensorFlow, Google द्वारा प्रदान किया गया एक मशीन लर्निंग फ्रेमवर्क है। यह एक ओपन-सोर्स फ्रेमवर्क है जिसे Python के साथ मिलकर एल्गोरिदम, डीप लर्निंग एप्लिकेशन और बहुत कुछ लागू करने के लिए उपयोग किया जाता है। इसमें ऑप्टिमाइज़ेशन तकनीकें हैं जो जटिल गणितीय संक्रियाओं को तेज़ी से करने में मदद करती हैं

  1. MNIST डेटासेट के लिए TensorFlow का उपयोग करके वेट्स को सेव और लोड कैसे करें? MNIST डेटासेट के लिए TensorFlow का उपयोग करके वेट्स को सेव और लोड कैसे करें?

    TensorFlow, Google द्वारा प्रदान किया गया एक मशीन लर्निंग फ्रेमवर्क है। यह एक ओपन-सोर्स फ्रेमवर्क है जिसे Python के साथ मिलकर एल्गोरिदम, डीप लर्निंग एप्लिकेशन और बहुत कुछ लागू करने के लिए उपयोग किया जाता है। इसका उपयोग अनुसंधान और उत्पादन उद्देश्यों के लिए किया जाता है। इसमें ऑप्टिमाइज़ेशन तकनीकें ह

  1. Python का उपयोग करके Keras से मॉडल कैसे प्लॉट करें? Python का उपयोग करके Keras से मॉडल कैसे प्लॉट करें?

    Tensorflow Google द्वारा प्रदान किया गया एक मशीन लर्निंग फ्रेमवर्क है। यह एक ओपन-सोर्स फ्रेमवर्क है जिसे Python के साथ संयोजन में एल्गोरिदम, डीप लर्निंग एप्लिकेशन और बहुत कुछ लागू करने के लिए उपयोग किया जाता है। इसका उपयोग शोध और उत्पादन उद्देश्यों के लिए किया जाता है। इसमें ऑप्टिमाइज़ेशन तकनीकें है