当前位置: 首页 > news >正文

pytorch框架训练、推理、模块冻结等各种细节说明

1.张量的requires_grad属性

importtorch x=torch.randn(3,3,requires_grad=False)y=x*2# y = 2xy.requires_grad=Truez=y.mean()# z=(1/9)*(2x),微分是dz/dx = 2/9# z=(1/9)*y,微分是dz/dy = 1/9z.backward()print(x,x.requires_grad)print(y,y.requires_grad,y.grad)print(z.requires_grad)

注意,python中万物都是对象(object),因此基本上都会有一些属性,类比C++中类和对象的关系。张量也是一种对象。

这里对张量的核心属性requires_grad功能进行演示。例子中,x不需要梯度,因此计算得到的y也是不需要梯度的张量,我们可以手动设置y需要梯度,因此影响到z,z变为需要梯度的。

运行结果:

tensor([[-0.2486,1.0678,0.6611],[0.3205, -0.4081, -0.5011],[-1.1482,1.5839, -0.3978]])False tensor([[-0.4972,2.1357,1.3223],[0.6411, -0.8162, -1.0023],[-2.2964,3.1677, -0.7956]],requires_grad=True)True tensor([[0.1111,0.1111,0.1111],[0.1111,0.1111,0.1111],[0.1111,0.1111,0.1111]])True

2.model.train()和model.eval()对模型的行为影响

先搭建一个简单模型

importtorchimporttorch.nnasnn torch.random.manual_seed(42)classSimpleModel(nn.Module):def__init__(self):super(SimpleModel,self).__init__()self.fc=nn.Linear(10,2)# 一个简单的线性层self.bn=nn.BatchNorm1d(2)# 批量标准化self.dropout=nn.Dropout(0.5)# Dropout层,50%的丢弃概率defforward(self,x):x=self.fc(x)# 通过全连接层x=self.bn(x)# 进行批量标准化x=self.dropout(x)# 应用Dropoutreturnx# 创建模型model=SimpleModel()

2.1 获取模型的全部参数

使用方法state_dict()

print(model.state_dict())

返回一个字典

OrderedDict([('fc.weight', tensor([[-0.0290, -0.2516, -0.3142, -0.2079,0.2460, -0.1968, -0.1554, -0.2758,0.2958,0.3105],[0.2236, -0.0511,0.2169,0.2815,0.1189, -0.2317,0.1405,0.2883,0.2088, -0.2837]
http://www.cnnetsun.cn/news/89234.html

相关文章:

  • Java毕设项目推荐-基于Java语言的茶叶销售系统的前端设计与实现基于SpringBoot+Vue茶叶销售系统的设计与实现【附源码+文档,调试定制服务】
  • 大数据生态核心组件语法与原理详解
  • UVa 11617 An Odd Love
  • LobeChat能否对接Slack?团队协作平台集成方案
  • 集团宽带是什么意思?企业如何选择合适的宽带方案?
  • 运维外包的公司靠谱吗?企业真能省心?
  • HunyuanVideo-Foley:AI让视频自动配声
  • 信息安全技术与Kali Linux
  • GEO系统:多区域搜索排名监控与品牌形象统一维护解决方案
  • 17、Apache服务器的代理配置、URL重写、自定义日志及性能监控
  • 18、Apache服务器性能测试与配置全解析
  • PostgreSQL 18 远程操作实战:从连接到备份的操作实践记录
  • S33-装一个Server2016+PCS7虚拟机
  • LobeChat能否部署在腾讯云CVM?国产云服务商适配教程
  • 本地使用ComfyUI运行Stable Diffusion 3.5
  • 力扣(LeetCode) 27: 移除元素 - 解法思路
  • 国内企业在泰国的三大机遇与四大挑战:玛雅出海东南亚的破局之道
  • 手把手教你部署LobeChat镜像,打造专属AI助手门户
  • Dify + HuggingFace镜像网站加速模型加载技巧
  • Docker安装TensorRT镜像时的网络代理设置技巧
  • EmotiVoice:开源多情感TTS引擎
  • LobeChat能否防范偏见歧视?公平性优化措施
  • 网络安全审查第一案回顾与启示
  • offsetof 宏的实现
  • vsftpd 安装、升级、配置全流程总结(含问题解决方案)
  • HunyuanVideo-Foley部署:本地与云端GPU实战
  • LangChain工具使用:简化AI函数调用
  • Docker 镜像打包为 tar 并在其他环境加载运行(离线部署实战指南)
  • Docker 镜像体积优化实战:从 1GB 到 100MB
  • LobeChat能否分配任务?团队协作智能调度