Saving & Exporting Deep Learning Models

Model рдХреЛ train рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕реЗ save рдХрд░рдирд╛ рдЬрд╝рд░реВрд░реА рд╣реЛрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрд╕реЗ:

  • Future рдореЗрдВ reuse рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ
  • Production рдореЗрдВ deploy рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ
  • рдХрд┐рд╕реА рдФрд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ (e.g., mobile, web, edge devices)

ЁЯФ╖ ЁЯФ╣ Why Save Models?

ReasonBenefit
Training time рдмрдЪрд╛рдирд╛рдмрд╛рд░-рдмрд╛рд░ retrain рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ
Deployment possibleWeb, mobile, or production рдореЗрдВ model use
Sharing & ReuseрджреВрд╕рд░реЛрдВ рд╕реЗ share рдХрд░рдирд╛ рдпрд╛ reuse рдХрд░рдирд╛

ЁЯФ╢ 1. PyTorch рдореЗрдВ Model Saving & Loading

тЬЕ 1.1 Only Weights Save рдХрд░реЗрдВ

torch.save(model.state_dict(), "model_weights.pth")

ЁЯФБ Load Only Weights

model = MyNet()  # same structure
model.load_state_dict(torch.load("model_weights.pth"))
model.eval()

тЬЕ 1.2 Save Full Model (Structure + Weights)

torch.save(model, "full_model.pth")

ЁЯФБ Load Full Model

model = torch.load("full_model.pth")
model.eval()

тЪая╕П Recommended method: save state_dict() instead of full model, for more flexibility and safety.


тЬЕ 1.3 Export for Production (TorchScript)

example_input = torch.randn(1, 2)
traced = torch.jit.trace(model, example_input)
traced.save("model_scripted.pt")

ЁЯФБ Load TorchScript Model

model = torch.jit.load("model_scripted.pt")
model.eval()

ЁЯФ╢ 2. TensorFlow / Keras рдореЗрдВ Model Saving

тЬЕ 2.1 Save Entire Model (.h5 or .keras)

model.save("my_model.h5")
# OR
model.save("my_model.keras") # Recommended in latest TF

ЁЯФБ Load:

from tensorflow.keras.models import load_model
model = load_model("my_model.h5")

тЬЕ 2.2 Save Weights Only

model.save_weights("weights.h5")

ЁЯФБ Load Weights:

model = build_model()  # Define same structure
model.load_weights("weights.h5")

тЬЕ 2.3 Export to TensorFlow Lite (for Mobile/IoT)

converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()

with open("model.tflite", "wb") as f:
f.write(tflite_model)

тЬЕ 2.4 Export to TF.js (Browser Use)

pip install tensorflowjs
tensorflowjs_converter --input_format keras my_model.h5 web_model/

ЁЯУЭ Practice Questions:

  1. PyTorch рдореЗрдВ state_dict рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВ рдЬрд╝рд░реВрд░реА рд╣реИ?
  2. Keras рдореЗрдВ .h5 рдФрд░ .keras рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  3. TorchScript рдФрд░ ONNX рдореЗрдВ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ?
  4. TensorFlow Lite рдХреНрдпреЛрдВ рдФрд░ рдХрдм use рдХрд░рддреЗ рд╣реИрдВ?
  5. Model рдХреЛ JSON рдпрд╛ TF.js рдореЗрдВ рдХреИрд╕реЗ export рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

ЁЯФЪ Summary Table

FrameworkSave WeightsSave Full ModelExport Option
PyTorchstate_dict()torch.save()TorchScript / ONNX
Kerassave_weights()model.save()TF Lite, TF.js
TensorFlowcheckpointSavedModel formatTensorFlow Serving

Evaluation Metrics тАУ Confusion Matrix, Precision, Recall

рдЕрдм рд╣рдо Deep Learning рдореЗрдВ рд╕рдмрд╕реЗ рдЬрд╝рд░реВрд░реА рдФрд░ рдЬрд╝реНрдпрд╛рджрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ Evaluation Metrics тАФ рд╡рд┐рд╢реЗрд╖рдХрд░ Confusion Matrix, Precision, рдФрд░ Recall тАФ рдХреЛ рдкреВрд░реА рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕рдордЭреЗрдВрдЧреЗред


ЁЯФ╖ 1. What Are Evaluation Metrics?

Evaluation metrics рдпрд╣ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ trained model рдХрд┐рддрдиреА рд╕рд╣реА predictions рдХрд░ рдкрд╛ рд░рд╣рд╛ рд╣реИ тАФ рдЦрд╛рд╕рдХрд░ classification problems рдореЗрдВред


ЁЯФ╢ 2. Confusion Matrix (рдЧрдбрд╝рдмрдбрд╝реА рдореИрдЯреНрд░рд┐рдХреНрд╕)

Confusion matrix classification prediction рдХреЛ рдЪрд╛рд░ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рддреЛрдбрд╝рддрд╛ рд╣реИ:

Predicted PositivePredicted Negative
Actual Positive (1)тЬЕ TP (True Positive)тЭМ FN (False Negative)
Actual Negative (0)тЭМ FP (False Positive)тЬЕ TN (True Negative)

ЁЯдЦ рдпреЗ matrix binary рдФрд░ multi-class рджреЛрдиреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


тЬЕ Python Code (PyTorch compatible)

from sklearn.metrics import confusion_matrix

y_true = [0, 1, 0, 1, 1, 0] # Ground truth
y_pred = [0, 1, 1, 1, 0, 0] # Model predictions

cm = confusion_matrix(y_true, y_pred)
print("Confusion Matrix:\n", cm)

Output:

[[2 1]
[1 2]]

рдпрд╣ рдХрд╣рддрд╛ рд╣реИ:

  • 2 True Negatives (class 0 рд╕рд╣реА predict рдХрд┐рдпрд╛)
  • 1 False Positive
  • 1 False Negative
  • 2 True Positives

ЁЯФ╢ 3. Precision (рд╕рдЯреАрдХрддрд╛)

Definition:

Model рдиреЗ рдЬрд┐рддрдиреЗ positive predict рдХрд┐рдП, рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рд╕рдЪ рдореЗрдВ positive рдереЗ?

Precision = TP / (TP + FP)

тЬЕ Example:

Model рдиреЗ 10 images рдХреЛ “cat” рдХрд╣рд╛, рдкрд░ рдХреЗрд╡рд▓ 6 рд╣реА рдЕрд╕рд▓реА cat рдереАрдВ тЖТ
Precision = 6 / 10 = 0.60

тЬЕ Code:

from sklearn.metrics import precision_score
precision = precision_score(y_true, y_pred)
print("Precision:", precision)

ЁЯФ╢ 4. Recall (Sensitivity / True Positive Rate)

Definition:

Total actual positive samples рдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЛрдВ рдХреЛ model рдиреЗ рд╕рд╣реА predict рдХрд┐рдпрд╛?

Recall = TP / (TP + FN)

тЬЕ Example:

10 рдореЗрдВ рд╕реЗ 8 рдЕрд╕рд▓реА cats рдереАрдВ, рдФрд░ model рдиреЗ 6 рдХреЛ correctly рдкрдХрдбрд╝рд╛ тЖТ
Recall = 6 / 8 = 0.75

тЬЕ Code:

from sklearn.metrics import recall_score
recall = recall_score(y_true, y_pred)
print("Recall:", recall)

ЁЯФ╢ 5. F1 Score (Precision + Recall рдХрд╛ Balance)

Definition:

Precision рдФрд░ Recall рдХрд╛ harmonic mean:

F1 = 2 * (Precision * Recall) / (Precision + Recall)

тЬЕ Code:

from sklearn.metrics import f1_score
f1 = f1_score(y_true, y_pred)
print("F1 Score:", f1)

ЁЯФ╖ ЁЯФН Visualization (Optional)

import seaborn as sns
import matplotlib.pyplot as plt

sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')
plt.xlabel("Predicted")
plt.ylabel("Actual")
plt.title("Confusion Matrix")
plt.show()

ЁЯза рдХрдм рдХреНрдпрд╛ Use рдХрд░реЗрдВ?

MetricUse When…
AccuracyData balanced рд╣реЛ
PrecisionFalse Positive рд╕реЗ рдмрдЪрдирд╛ рдЬрд╝рд░реВрд░реА рд╣реЛ (e.g. spam)
RecallFalse Negative рд╕реЗ рдмрдЪрдирд╛ рдЬрд╝рд░реВрд░реА рд╣реЛ (e.g. cancer detection)
F1 ScorePrecision рдФрд░ Recall рджреЛрдиреЛрдВ рдЬрд╝рд░реВрд░реА рд╣реЛрдВ

ЁЯУЭ Objective Questions:

  1. Confusion matrix рдХреЗ 4 parts рдХреНрдпрд╛ рд╣реЛрддреЗ рд╣реИрдВ?
  2. Precision рдФрд░ Recall рдореЗрдВ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИ?
  3. Precision рдХрдм рдЬрд╝реНрдпрд╛рджрд╛ important рд╣реЛрддрд╛ рд╣реИ?
  4. f1_score metric рдХрдм use рдХрд░рддреЗ рд╣реИрдВ?
  5. Confusion matrix рдХрд╛ visualization рдХреИрд╕реЗ рдХрд░реЗрдВ?

ЁЯФЪ Summary

MetricFormulaMeaning
PrecisionTP / (TP + FP)Predicted Positives рдореЗрдВ рд╕реЗ рд╕рд╣реА рдХрд┐рддрдиреЗ
RecallTP / (TP + FN)Actual Positives рдореЗрдВ рд╕реЗ рд╕рд╣реА рдХрд┐рддрдиреЗ
F1 ScoreHarmonic mean of P & RBalance of both metrics
Confusion MatrixTP, FP, FN, TNOverall prediction structure

What is Model Evaluation and Deployment

рдЕрдм рдЖрдкрдиреЗ deep learning models рдмрдирд╛рдирд╛, train рдХрд░рдирд╛ рдФрд░ save/load рдХрд░рдирд╛ рд╕реАрдЦ рд▓рд┐рдпрд╛ рд╣реИ тАФ рдЕрдЧрд▓рд╛ рдЬрд╝рд░реВрд░реА рдХрджрдо рд╣реИ:Model Evaluation and Deployment

ЁЯФ╖ Part 1: ЁЯУК Model Evaluation

Model рдХреЛ train рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдЬрд╛рдирдирд╛ рдЬрд╝рд░реВрд░реА рд╣реИ рдХрд┐ рд╡реЛ рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ тАФ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо evaluation metrics рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред


тЬЕ 1. Accuracy (рд╢реБрджреНрдзрддрд╛)

  • Classification рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрдо metric
  • Formula:
    Accuracy = рд╕рд╣реА рдЕрдиреБрдорд╛рди / рдХреБрд▓ рдЙрджрд╛рд╣рд░рдг
# Keras
model.evaluate(X_test, y_test)

# PyTorch
with torch.no_grad():
preds = model(X_test)
predicted = preds.round()
acc = (predicted == y_test).float().mean()

тЬЕ 2. Confusion Matrix

Classification output рдХреЛ True Positives, False Positives, True Negatives, рдФрд░ False Negatives рдореЗрдВ рдмрд╛рдВрдЯрддрд╛ рд╣реИред

from sklearn.metrics import confusion_matrix
print(confusion_matrix(y_true, y_pred))

тЬЕ 3. Precision, Recall, F1 Score

MetricMeaning
PrecisionPositive prediction рдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рд╕рд╣реА рдереЗ
RecallрдХрд┐рддрдиреЗ actual positive рд╕рд╣реА рдкрдХрдбрд╝реЗ рдЧрдП
F1 ScorePrecision рдФрд░ Recall рдХрд╛ balance
from sklearn.metrics import classification_report
print(classification_report(y_true, y_pred))

тЬЕ 4. Loss Curve / Accuracy Curve (Visualization)

import matplotlib.pyplot as plt

plt.plot(history.history['loss'], label='loss')
plt.plot(history.history['val_loss'], label='val_loss')
plt.legend()
plt.show()

ЁЯФ╖ Part 2: ЁЯЪА Model Deployment

Model рдХреЛ рджреБрдирд┐рдпрд╛ рддрдХ рдкрд╣реБрдБрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЙрд╕реЗ deploy рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ тАФ рдпрд╛рдиреА рдХрд┐рд╕реА app, API, рдпрд╛ web server рдкрд░ рдЪрд▓рд╛рдирд╛ред


тЬЕ 1. Deployment Methods:

MethodUse Case
Flask APISimple Web/API deployment
TensorFlow ServingProduction-ready serving
TorchScriptPyTorch model serialization
ONNXCross-platform compatibility
TF LiteMobile apps (Android/iOS)
TF.jsBrowser-based models
Gradio / StreamlitQuick UI + demo

тЬЕ 2. PyTorch Model Export (TorchScript)

traced_model = torch.jit.trace(model, torch.rand(1, 2))
traced_model.save("model.pt")

Use in any PyTorch-enabled environment.


тЬЕ 3. TensorFlow/Keras Model Export

pythonCopyEditmodel.save("model.h5")  # Full model (Keras)

Convert to TF Lite for mobile:

converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
with open('model.tflite', 'wb') as f:
f.write(tflite_model)

тЬЕ 4. Simple Flask API for Inference

from flask import Flask, request, jsonify
import torch

app = Flask(__name__)
model = torch.load("model.pt")
model.eval()

@app.route('/predict', methods=['POST'])
def predict():
data = request.json
input_tensor = torch.tensor(data['input'])
with torch.no_grad():
prediction = model(input_tensor).item()
return jsonify({'prediction': prediction})

app.run(debug=True)

тЬЕ 5. Deployment Tools

ToolPurpose
DockerContainerize model + environment
KubernetesDeploy at scale
HerokuSimple web hosting
AWS/GCP/AzureCloud deployment
Hugging Face SpacesDeploy public demos

ЁЯУЭ Practice Questions:

  1. Accuracy рдФрд░ F1-score рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  2. PyTorch рдореЗрдВ confusion matrix рдХреИрд╕реЗ calculate рдХрд░рддреЗ рд╣реИрдВ?
  3. Model рдХреЛ Flask API рдореЗрдВ рдХреИрд╕реЗ deploy рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
  4. torch.jit.trace() рдФрд░ model.save() рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  5. TensorFlow Lite рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдФрд░ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

ЁЯза Summary Table

TaskPyTorchTensorFlow/Keras
Accuracy Eval(preds == y).float().mean()model.evaluate()
Save for Deploymenttorch.jit.save()model.save()
MobileONNX or TorchScriptTF Lite
APIFlask/FastAPIFlask/FastAPI
Web UIGradio / StreamlitGradio / Streamlit

Using GPUs and TPUs in Deep Learning

рдЕрдм рдЬрдм рдЖрдк PyTorch рдФрд░ Keras рджреЛрдиреЛрдВ рдореЗрдВ model рдмрдирд╛ рдФрд░ train рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ performance boost рдХреЗ рд▓рд┐рдП GPU/TPU рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рдЬрд╝рд░реВрд░реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ тАФ рдЦрд╛рд╕рдХрд░ рдмрдбрд╝реЗ datasets рдпрд╛ deep models рдХреЗ рд▓рд┐рдПред


ЁЯФ╖ 1. ЁЯФе Why Use GPUs?

CPU vs GPUGPU Advantage
SequentialParallel computing
Few coresThousands of cores
Slower matrix opsFaster tensor operations
General-purposeSpecial for ML/DL, CUDA-optimized

ЁЯФ╢ PyTorch рдореЗрдВ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ?

тЬЕ Step 1: Check GPU Availability

import torch

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print("Using device:", device)

тЬЕ Step 2: Model рдФрд░ Data рдХреЛ GPU рдкрд░ рднреЗрдЬрдирд╛

model = MyNet().to(device)  # Model рдХреЛ GPU рдкрд░ рднреЗрдЬреЗрдВ
X = X.to(device)
y = y.to(device)

тЬЕ Training Code рдореЗрдВ рдмрджрд▓рд╛рд╡:

for epoch in range(1000):
y_pred = model(X)
loss = criterion(y_pred, y)

optimizer.zero_grad()
loss.backward()
optimizer.step()

рдмрд╕ рдпрд╣ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ model рдФрд░ data рджреЛрдиреЛрдВ рдПрдХ рд╣реА device рдкрд░ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред


ЁЯФ╖ 2. GPU рд╕реЗ Prediction (Inference)

model.eval()
with torch.no_grad():
test = torch.tensor([[1., 0.]]).to(device)
output = model(test)
print("Prediction:", output.item())

ЁЯФ╖ 3. Keras (TensorFlow) рдореЗрдВ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ

TensorFlow рдЕрдкрдиреЗ рдЖрдк GPU рдХреЛ detect рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЕрдЧрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛ)ред рдмрд╕ ensure рдХрд░реЗрдВ рдХрд┐:

  • TensorFlow-GPU version install рд╣реЛ
  • NVIDIA Drivers + CUDA Toolkit рд╕рд╣реА рд╕реЗ install рд╣реЛ

тЬЕ Check GPU:

import tensorflow as tf
print("Num GPUs Available:", len(tf.config.list_physical_devices('GPU')))

тЬЕ Tensor рдФрд░ Model GPU рдкрд░ рдЪрд▓реЗрдВрдЧреЗ рдЕрдкрдиреЗ рдЖрдк:

model.fit(X, y, epochs=10)  # If GPU available, TensorFlow will use it

тЬЕ Manually GPU select рдХрд░рдирд╛:

with tf.device('/GPU:0'):
model = tf.keras.Sequential([...])
model.compile(...)
model.fit(...)

ЁЯФ╖ 4. Google Colab рдореЗрдВ GPU/TPU Use

тЬЕ GPU Enable рдХрд░реЗрдВ:

Runtime тЖТ Change runtime type тЖТ Hardware accelerator тЖТ GPU or TPU

тЬЕ Check GPU/TPU:

import tensorflow as tf
print(tf.config.list_physical_devices('GPU')) # For GPU
print(tf.config.list_logical_devices('TPU')) # For TPU

ЁЯФ╖ 5. TPUs рдХреНрдпрд╛ рд╣реЛрддреЗ рд╣реИрдВ?

AspectDetail
TPUTensor Processing Unit (Google рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛)
SpeedGPU рд╕реЗ рднреА рддреЗрдЬрд╝ рд╣реИ рдХреБрдЫ tasks рдореЗрдВ
Best forVery large models, production-level serving
UseMainly in Google Colab, Cloud TPUs, TensorFlow

ЁЯУЭ Practice Questions:

  1. PyTorch рдореЗрдВ GPU support рдХреИрд╕реЗ check рдХрд░рддреЗ рд╣реИрдВ?
  2. Model рдХреЛ GPU рдкрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрдирд╕рд╛ syntax рд╣реИ?
  3. TensorFlow GPU vs TPU рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  4. Google Colab рдореЗрдВ GPU enable рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?
  5. рдХреНрдпрд╛ CPU рд╕реЗ GPU training рдореЗрдВ рдлрд░реНрдХ рдЖрддрд╛ рд╣реИ?

ЁЯза Summary Table

TaskPyTorchKeras (TF)
GPU Checktorch.cuda.is_available()tf.config.list_physical_devices()
Send to GPUx.to(device)Automatic
Model to GPUmodel.to(device)Automatic
Use Colab GPURuntime > Change > GPUSame
TPU SupportтЭМ (Limited)тЬЕ (Good)

Model Training, Saving, and Loading in Keras

рдЕрдм рд╣рдо Keras (рдЬреЛ TensorFlow рдХрд╛ high-level API рд╣реИ) рдореЗрдВ Deep Learning Model рдХреЛ Train, Save, рдФрд░ Load рдХрд░рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗ тАФ step-by-step рдФрд░ practical examples рдХреЗ рд╕рд╛рдеред


ЁЯФ╖ 1. тЬЕ Model Training in Keras (Step-by-Step)

ЁЯУМ Step 1: Import Libraries

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

ЁЯУМ Step 2: Define Model

model = Sequential([
Dense(8, activation='relu', input_shape=(2,)),
Dense(1, activation='sigmoid')
])

ЁЯУМ Step 3: Compile Model

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

ЁЯУМ Step 4: Prepare Data

import numpy as np

X = np.array([[0,0], [0,1], [1,0], [1,1]])
y = np.array([0, 1, 1, 0])

ЁЯУМ Step 5: Train Model

model.fit(X, y, epochs=100, batch_size=2, verbose=1)

ЁЯФ╖ 2. ЁЯТ╛ Saving a Keras Model

тЬЕ Option 1: Save Full Model (Best Practice)

model.save("my_model.h5")  # Saves architecture + weights + optimizer state

OR in newer format:

model.save("my_model.keras")  # New native format

тЬЕ Option 2: Save Only Weights

model.save_weights("model_weights.h5")

ЁЯФ╖ 3. ЁЯУВ Loading a Saved Model

тЬЕ Load Full Model:

from tensorflow.keras.models import load_model

model = load_model("my_model.h5")

This will return the model ready to use тАФ no need to recompile or redefine.


тЬЕ Load Only Weights:

First define the model architecture same as before:

model = Sequential([
Dense(8, activation='relu', input_shape=(2,)),
Dense(1, activation='sigmoid')
])

Then load the weights:

model.load_weights("model_weights.h5")

ЁЯФ╖ 4. ЁЯФБ Save and Load during Training (Checkpointing)

тЬЕ Use ModelCheckpoint Callback

from tensorflow.keras.callbacks import ModelCheckpoint

checkpoint = ModelCheckpoint("best_model.h5", save_best_only=True, monitor="loss")

model.fit(X, y, epochs=50, callbacks=[checkpoint])

ЁЯФ╖ 5. ЁЯзк Inference (Prediction)

pred = model.predict(np.array([[1, 0]]))
print("Prediction:", pred[0][0])

ЁЯза Use .predict() method for classification, regression, or output generation.


ЁЯФз Extra: Exporting to TF Lite (Mobile/Edge)

converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()

with open('model.tflite', 'wb') as f:
f.write(tflite_model)

ЁЯУЭ Practice Questions:

  1. Keras рдореЗрдВ model train рдХрд░рдиреЗ рдХреЗ steps рдХреНрдпрд╛ рд╣реИрдВ?
  2. .h5 рдФрд░ .keras рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  3. model.save() рдФрд░ model.save_weights() рдореЗрдВ рдХреНрдпрд╛ рдлрд░реНрдХ рд╣реИ?
  4. Training рдХреЗ рджреМрд░рд╛рди best model рдХреИрд╕реЗ save рдХрд░рддреЗ рд╣реИрдВ?
  5. Model load рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж inference рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?

ЁЯза Summary Table

TaskKeras Method
Train Modelmodel.fit()
Save Full Modelmodel.save("model.h5")
Save Only Weightsmodel.save_weights()
Load Full Modelload_model("model.h5")
Load Weights Onlymodel.load_weights()
Predict / Inferencemodel.predict(x)
Save Best during TrainingModelCheckpoint(callback)