在 Torch/Lua 中,加载保存的模型和使用 Xavier 权重初始化方法有什么区别?
2016-3-15 21:40:58
收藏:0
阅读:75
评论:1
我在一个人工神经网络项目中使用了 Torch 和 Lua。
有时我会使用 torch.save() 和 torch.load() 命令将训练好的模型保存到文件中并在我的脚本中加载它。
最近,我一直在研究所谓的 Xavier 权重初始化方法[最初由 Xavier Glorot 开发] (http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf) 在 2010 年。
我在 torch-toolbox package 中找到了这种权重初始化方法的实现。 例子中包含以下代码:
-- 设计模型
require('nn')
model = nn.Sequential()
model:add(nn.SpatialConvolutionMM(3,4,5,5))
-- 重置权重
method = 'xavier'
model_new = require('weight-init')(model, method)
我在 Torch 控制台中运行了这个例子,并尝试分析对象的内容,如 model 和 model_new。 我看不到立即的区别,所以我想知道: 使用这个 Xavier weight-init 权重初始化和经典的 torch.load() 命令之间有什么区别?
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
引用所提到的文档:
因此,
weight-init会将网络中的所有权重重置为某个值(如果使用Xavier方法,则为math.sqrt(2 /(fan_in + fan_out)(请参见[此处](https://github.com/e-lab/torch-toolbox/blob/master/Weight-init/weight-init.lua#L19)))。另一方面,
torch.load()会读取从预训练文件中保存的权重(该文件使用torch.save()保存)。 因此,除非您的权重在训练过程中没有改变,否则,如果您执行以下操作:weight-init()-> train -> torch.save()-> torch.load()您应该会看到与仅使用weight-init()时不同的结果。