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

深度学习参数管理

1.访问参数

我们从已有模型中访问参数。当通过`Sequential`类定义模型时,我们可以通过索引来访问模型的任意层。

· 检查第二个全连接层的参数。

print(net[2].state_dict())

print(net[2].bias)

print(net[2].bias.data)

net[2].weight

print(*[(name, param.shape) for name, param in net[0].named_parameters()])

print(*[(name, param.shape) for name, param in net.named_parameters()])

2.参数初始化

· 内置初始化

def init_normal(m):

    if type(m) == nn.Linear:

        nn.init.normal_(m.weight, mean=0, std=0.01)

        nn.init.zeros_(m.bias)

net.apply(init_normal)

net[0].weight.data[0], net[0].bias.data[0] #输出

· 不同的层采用不同的初始化

def init_xavier(m):

    if type(m) == nn.Linear:

        nn.init.xavier_uniform_(m.weight)

def init_42(m):

    if type(m) == nn.Linear:

        nn.init.constant_(m.weight, 42)    

net[0].apply(init_xavier)

net[2].apply(init_42)

print(net[0].weight.data[0])

print(net[2].weight.data)

3.共享参数

# 我们需要给共享层一个名称,以便可以引用它的参数

shared = nn.Linear(8, 8)

net = nn.Sequential(nn.Linear(4, 8), nn.ReLU(),

                    shared, nn.ReLU(),

                    shared, nn.ReLU(),

                    nn.Linear(8, 1))

net(X)

# 检查参数是否相同

print(net[2].weight.data[0] == net[4].weight.data[0])

net[2].weight.data[0, 0] = 100

# 确保它们实际上是同一个对象,而不只是有相同的值

print(net[2].weight.data[0] == net[4].weight.data[0])


http://www.kler.cn/a/314553.html

相关文章:

  • 2024版本IDEA创建Sprintboot项目下载依赖缓慢
  • 普通电脑上安装属于自己的Llama 3 大模型和对话客户端
  • WebRTC API分析
  • [Docker#8] 容器配置 | Mysql | Redis | C++ | 资源控制 | 命令对比
  • hadoop大数据平台
  • YUM 的使用
  • MySQL-DDL/DML(数据定义/操作语言)
  • GIS开发之如何使用OpenLayers,Leaflet,Mapbox,Cesium,ArcGIS, Turf.js 与 D3.js
  • 【Webpack--00802】配置Babel语法兼容
  • 【图像检索】基于Gabor特征的图像检索,matlab实现
  • Python面试宝典第50题:分割等和子集
  • Vscode、插件历史版本下载
  • [数据结构与算法·C++] 笔记 1.4 算法复杂性分析
  • [附源码]SpringBoot+VUE+Java实现人脸识别系统
  • 实战指南:深度剖析Servlet+JSP+JDBC技术栈下的用户CRUD操作
  • 探秘 Web Bluetooth API:连接蓝牙设备的新利器
  • 828华为云征文|Flexus X实例GitLab部署构建流水线-私人一体化代码仓库~
  • AWS账号可以共用吗?
  • vue 中互相不关联的两个组件怎么进行通信(数据传输)
  • MFC获取网页的html文本
  • 视频V4改进
  • 锐捷 睿易路由器存在RCE漏洞
  • 会声会影2025视频剪辑教学
  • 开源集成开发环境搭建之VSCode安装部署教程
  • MySQL:基本查询操作
  • java计算机毕设课设—土地档案管理系统(附源码、文章、相关截图、部署视频)