当前位置:首页 >> 编程语言 >> 【PyTorch】模型,柯达v570

【PyTorch】模型,柯达v570

0evadmin 编程语言 3
文件名:【PyTorch】模型,柯达v570 【PyTorch】模型

文章目录 1. 模型的创建1.1. 创建方法1.1.1. 通过使用模型组件1.1.2. 通过继承nn.Module类 1.2. 将模型转移到GPU 2. 模型参数初始化3. 模型的保存与加载3.1. 只保存参数3.2. 保存模型和参数

1. 模型的创建 1.1. 创建方法 1.1.1. 通过使用模型组件

可以直接使用模型组件快速创建模型。

import torch.nn as nnmodel =nn.Linear(10, 10)print(model)

输出结果:

Linear(in_features=10, out_features=10, bias=True) 1.1.2. 通过继承nn.Module类

在__init__方法中使用模型组件定义模型各层。必须重写forward方法实现前向传播。

import torch.nn as nnclass Model(nn.Module):def __init__(self):super().__init__()self.layer1 = nn.Linear(10, 10)self.layer2 = nn.Linear(10, 10)self.layer3 = nn.Sequential(nn.Linear(10, 10),nn.ReLU(),nn.Linear(10, 10))def forward(self, x):x = self.layer1(x)x = self.layer2(x)x = self.layer3(x)return xmodel = Model()print(model)

输出结果:

Model((layer1): Linear(in_features=10, out_features=10, bias=True)(layer2): Linear(in_features=10, out_features=10, bias=True)(layer3): Sequential((0): Linear(in_features=10, out_features=10, bias=True)(1): ReLU()(2): Linear(in_features=10, out_features=10, bias=True))) 1.2. 将模型转移到GPU

方法与将数据转移到GPU类似,都有两种方法:

model.to(device)mode.cuda() import torchimport torch.nn as nn# 创建模型实例model = nn.Sequential(nn.Linear(10, 10),nn.ReLU(),nn.Linear(10, 10))# 将模型移动到GPUdevice = torch.device("cuda" if torch.cuda.is_available() else "cpu")model = model.to(device)# 也可以model = model.cuda() 2. 模型参数初始化

torch.nn.init提供了许多初始化参数的函数:

函数名作用参数uniform_从均匀分布 U ( a , b ) U(a,b) U(a,b)中生成值,填充输入的张量tensor, a = 0, b = 1normal_从正态分布 N ( m e a n , s t d 2 ) N(mean, std^2) N(mean,std2)中生成值,填充输入的张量tensor, mean = 0, std = 1constant_用常数 v a l val val,填充输入的张量tensor, valeye_用单位矩阵,填充二维输入张量tensor(二维)dirac_用狄拉克函数,填充{3, 4, 5}维输入张量tensor({3, 4, 5}维), groups = 1xavier_uniform_从xavier均匀分布中生成值,填充输入张量tensor, gain = 1xavier_normal_从xavier正态分布中生成值,填充输入张量tensor, gain = 1kaiming_uniform_从kaiming均匀分布中生成值,填充输入张量tensor, a = 0, mode = ‘fan_in’, nonlinearity = ‘leaky_relu’kaiming_normal_从kaiming正态分布中生成值,填充输入张量tensor, a = 0, mode = ‘fan_in’, nonlinearity = ‘leaky_relu’orthogonal_用一个(半)正交矩阵,填充输入张量tensor, gain = 1sparse_用非零元素服从 N ( 0 , s t d 2 ) N(0, std^2) N(0,std2)的稀疏矩阵,填充二维输入张量tensor, sparsity, std = 0.01 3. 模型的保存与加载

模型保存和加载使用的python内置的pickle模块。

3.1. 只保存参数 import torchimport torch.nn as nn# 创建模型实例model1 = nn.Sequential(nn.Linear(10, 10),nn.ReLU(),nn.Linear(10, 10))# 保存和加载参数torch.save(model1.state_dict(), '../model/model_params.pkl')model1.load_state_dict(torch.load('../model/model_params.pkl')) 3.2. 保存模型和参数 import torchimport torch.nn as nn# 创建模型实例model1 = nn.Sequential(nn.Linear(10, 10),nn.ReLU(),nn.Linear(10, 10))# 保存和加载模型和参数torch.save(model1, '../model/model.pt')model2 = torch.load('../model/model.pt')print(model2)
协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接