#如果有帮助请点个赞
加载模型中有自定义的层,以及引用模块,这些必须要事先定义。
#加载模型应该把原模型的定义以及导入模块准备好
举例:
#下面绿色的部分是原有模型model-1.pkl定义的类和引用模块。如果要torch.load('model-1.pkl'),下面定义必须要先写好
import numpy as np
import torch
import matplotlib.pyplot as plt
class mymodel (torch.nn.Module):
def __init__(self,d_in,H,D_out):
super().__init__()
self.linear1=torch.nn.Linear(D_in,H,)
self.leak=torch.nn.LeakyReLU ()
self.linear2=torch.nn.Linear(H,D_out)
def forward(self,x):
out=self.linear1(x)
out=self.leak(out)
out=self.linear2(out)
#tensor 的.clamp(min=0) 类似函数Relu
self.x=x
self.out=out
return out
def show(self):
x=self.x.numpy().reshape(-1)
print(self.out)
y=self.out.detach().numpy().reshape(-1)
plt.plot(x,y)
plt.show()
pass
#加载模型应该把原模型的定义以及导入模块准备好,
#原有模型中的数据还存在
load_model = torch.load('./model-1.pkl')# model-1.pkl加载的这个就是原来导出的class mymodel