理解在 Torch 中的时间卷积
我试图通过 Torch 参数化一个 1D 卷积神经网络。
假设我有一个名为 data 的张量,它的维度为 10 x 512,其中有 10 行和 512 列。因此,我想要实现一个由单个 TemporalConvolution 层、ReLU 层和 TemporalMaxPooling 层组成的三层堆叠。我的分类问题是二元的,并且有一个相应的 labels 张量,它是 10 x 1 的。假设已经编写了一个 feval 来迭代遍历 data 和 labels 中的每个 row。
因此,问题就是构建一个能够将 512 列映射到 1 列的网络
改编自 documentation:
...
model = nn.Sequential()
model:add(nn.TemporalConvolution(inputFrameSize, outputFrameSize, kW, [dW]))
model:add(nn.ReLU())
model:add(nn.TemporalMaxPooling(kW2, [dW2])
...
criterion = nn.BCECriterion()
...
我将其参数化如下,但是以下内容不起作用: /
TemporalConvolution(512,1,3,1)
ReLU())
TemporalMaxPooling(3, 1)
它会抛出 expected 2D or 3D(batch mode) tensor 错误。因此,在将其传递给网络之前,我尝试对 data 进行重塑:
data = data:resize(1, 100, 512)
但是这会抛出 invalid input frame size 错误。
我可以看到错误涉及到进入卷积网络的数据的 形状,当然也涉及 参数化。我进一步受到 [这里的帖子](https://groups.google.com/forum/#!topic/torch7/aBYS4YVBkxQ)的困扰,这似乎表明 TemporalConvolution 的 inputFrameSize 应该设置为 10 而不是 512。
任何指导将不胜感激,以帮助构建一个 1D 卷积网络。
P.S. 我已经使用了 logisticRegression 模型测试了脚本,并且运行良好,因此问题仅仅出在卷积网络的架构 / 进入它的数据的形状上。
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的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 代码?

我想你误解了 inputFrameSize 的意义,它并不是你输入的 seqlen,而是 n_channels(例如,在二维卷积中,对于 512 * 512 的 RGB 图像,inputFrameSize 应该是 3 而不是 512)。