Model рдХреЛ train рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕реЗ save рдХрд░рдирд╛ рдЬрд╝рд░реВрд░реА рд╣реЛрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрд╕реЗ:
- Future рдореЗрдВ reuse рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ
- Production рдореЗрдВ deploy рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ
- рдХрд┐рд╕реА рдФрд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ (e.g., mobile, web, edge devices)
ЁЯФ╖ ЁЯФ╣ Why Save Models?
| Reason | Benefit |
|---|---|
| Training time рдмрдЪрд╛рдирд╛ | рдмрд╛рд░-рдмрд╛рд░ retrain рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ |
| Deployment possible | Web, 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:
- PyTorch рдореЗрдВ
state_dictрдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВ рдЬрд╝рд░реВрд░реА рд╣реИ? - Keras рдореЗрдВ
.h5рдФрд░.kerasрдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ? - TorchScript рдФрд░ ONNX рдореЗрдВ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ?
- TensorFlow Lite рдХреНрдпреЛрдВ рдФрд░ рдХрдм use рдХрд░рддреЗ рд╣реИрдВ?
- Model рдХреЛ JSON рдпрд╛ TF.js рдореЗрдВ рдХреИрд╕реЗ export рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
ЁЯФЪ Summary Table
| Framework | Save Weights | Save Full Model | Export Option |
|---|---|---|---|
| PyTorch | state_dict() | torch.save() | TorchScript / ONNX |
| Keras | save_weights() | model.save() | TF Lite, TF.js |
| TensorFlow | checkpoint | SavedModel format | TensorFlow Serving |