当前位置:网站首页>PyTorch(15)---模型保存和加载
PyTorch(15)---模型保存和加载
2022-08-02 14:07:00 【伏月三十】
模型保存和加载
模型保存
import torch
import torchvision
from torch import nn
from torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear
#模型:vgg16
vgg16=torchvision.models.vgg16(pretrained=False)
'''第一种:模型参数都保存'''
torch.save(vgg16,"vgg16_method1.pth")
'''第二种:只保存参数,保存成字典(官方推荐)'''
torch.save(vgg16.state_dict(),"vgg16_method2.pth")
'''陷阱1:使用自己搭建的网络(第一种)'''
class Demo(nn.Module):
def __init__(self) -> None:
super().__init__()
self.model1=Sequential(
Conv2d(in_channels=3, out_channels=32, kernel_size=5, stride=1, padding=2, dilation=1, ),
MaxPool2d(kernel_size=2, ),
Conv2d(in_channels=32, out_channels=32, kernel_size=5, stride=1, padding=2, ),
MaxPool2d(kernel_size=2),
Conv2d(32, 64, 5, 1, 2),
MaxPool2d(2),
Flatten(),
Linear(1024, 64),
Linear(64, 10),
)
def forward(self,x):
x=self.model1(x)
return x
#模型2
demo=Demo()
torch.save(demo,"demo_method1.pth")
模型加载
import torch
import torchvision
from torch import nn
from torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear
from model_save import *
'''方式1:(使用保存方式1),加载模型'''
model=torch.load("vgg16_method1.pth")
print(model)
print("------------------------------------------------------------")
'''方式2'''
#先把结构搞出来
vgg16=torchvision.models.vgg16(pretrained=False)
#再把字典形式的参数放进去(自己训练的参数!!!)
vgg16.load_state_dict(torch.load("vgg16_method2.pth"))
print(vgg16)
print("------------------------------------------------------------")
'''陷阱1:要把自己的网络模型放过来,但是不用实例化了 或者将模型保存的文件import过来 '''
medel1=torch.load("demo_method1.pth")
print(medel1)
边栏推荐
猜你喜欢
随机推荐
LLVM系列第二十六章:理解LLVMContext
MySQL知识总结 (二) 存储引擎
宝塔搭建PHP自适应懒人网址导航源码实测
MySQL知识总结 (一) 数据类型
MySQL知识总结 (四) 事务
使用flutter小记
[VCU] Detailed S19 file (S-record)
华为防火墙
spark on yarn
牛客刷题汇总(持续更新中)
LLVM系列第二十章:写一个简单的Function Pass
加减法运算及其溢出处理
MySQL知识总结 (九) 用户与用户权限管理
Word2vec词向量
Spark_DSL
redis入门-1-redis概念和基础
没学好统计学的下场
记录Yolo-tiny-v4的权重提取和中间层结果提取
LLVM系列第十七章:控制流语句for
MySQL知识总结 (八) InnoDB的MVCC实现机制









