在深度学习中,我们通常使用预训练模型来进行预测,或者在训练过程中保存模型以便稍后继续训练。以下是如何保存和加载计算模型的方法:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# 创建模型
model = Sequential()
model.add(Dense(64, activation='relu', input_dim=100))
model.add(Dense(10, activation='softmax'))
# 编译模型
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 训练模型(假设已经完成了训练)
# model.fit(...)
# 保存整个模型(包括结构、权重和优化器状态)
model.save("my_model.h5")
import tensorflow as tf
# 假设model是已经编译和训练好的Keras模型
tf.saved_model.save(model, "saved_model_directory")
import torch
import torch.nn as nn
# 定义模型
class MyModel(nn.Module):
def __init__(self):
super(MyModel, self).__init__()
self.layer = nn.Linear(100, 10)
def forward(self, x):
return self.layer(x)
model = MyModel()
# 训练模型(假设已经完成了训练)
# ...
# 保存模型权重
torch.save(model.state_dict(), "my_model.pth")
from tensorflow.keras.models import load_model
# 加载整个模型
model = load_model("my_model.h5")
# 使用模型进行预测
predictions = model.predict(input_data)
import tensorflow as tf
# 加载模型
loaded = tf.saved_model.load("saved_model_directory")
# 获取模型的签名函数
infer = loaded.signatures["serving_default"]
# 使用模型进行预测
predictions = infer(tf.constant(input_data))['output_0']
import torch
from my_model import MyModel # 假设MyModel是你定义的模型类
# 实例化模型
model = MyModel()
# 加载模型权重
model.load_state_dict(torch.load("my_model.pth"))
# 设置模型为评估模式
model.eval()
# 使用模型进行预测
with torch.no_grad():
predictions = model(input_data)
.pth
文件只包含模型的权重,而不包含模型结构。因此,在加载权重之前,你需要重新定义模型结构。领取专属 10元无门槛券
手把手带您无忧上云