【发布时间】:2016-09-24 15:51:57
【问题描述】:
我在 Torch 中实现了一个孪生神经网络,但我在输出的维度上有问题。
在我为测试而开发的一个简单脚本中,它读取输入中的 N 个元素并在输出中正确生成 N 个元素。
但在我的主软件中,几乎相同的模型在输入中读取 N 个元素并在输出中错误地生成 1 个元素。 两个模型之间的唯一区别是神经元的数量,这不应该影响输出维度
为什么会这样?
在这张图片中,您可以看到两个 Torch 孪生神经网络的结构之间的比较。
可能是什么错误? 如何检测它? 有什么想法吗?
【问题讨论】:
-
首先,尝试切换 dropout 参数的存在。默认值为 0.5,因此它不会影响任何东西,但让我们先删除该因素。那将只留下 826 参数;这是什么?如果是批量大小,我认为没有问题;如果是其他东西,可能与实际输入形状不匹配?
-
@Prune 感谢您的帮助。我删除了 Dropout 组件,没有任何改变。 82 和 6 不是 minibatch 的大小,而是神经网络的大小。
-
好的,这在这两种情况下都是一个好兆头,只是它没有给我们一个简单的解决方案。接下来,让我们尝试真正的偏执镜头:将 82 更改为 6 并再次运行。这应该使两个模型相同。如果您仍然只得到 1 个元素,那么除了您在此帖子中显示的内容之外,还有一些问题 - 这对您来说应该是一个巨大的线索。
-
如果更改为 6 有效,那么我会尝试慢慢提高它:7 或 8,然后尝试将性能中断发生的位置归零。
-
谢谢@Prune。我修改了正确的让它读取具有 82 维的数据集,但不幸的是没有任何改变。我还用一张新图片更新了这个问题,其中两个神经网络都有 82 个神经元。
标签: lua neural-network deep-learning torch