使用张量流的自定义连接网络占用太多存储空间并且无法训练
self-defined conneted network using tesnsorflow take too much storage and failed to train
对于我的项目,我使用 tensorflow 编写了一个未完全连接的前馈词网络。
由于连接不完全,我只使用标量变量而不是矩阵变量来生成权重。
出于这个原因,我可以灵活地分别连接来自两个相邻层的神经元。
不幸的是,这个网络的训练占用了太多的存储空间。
enter image description here
训练也失败了,如果网络有更多层(我有一个迭代来定义层数)
我已经在 github 上发布了我的代码:https://github.com/hezhouyuanren/BP-like-Decoder.git
.
我希望得到你的帮助
您可以创建常规的全连接层,然后 然后 删除连接你不需要。例如,对于具有 N 个特征的输入 X 和一个大小为 M 的层,您将拥有大小为 N x M 的典型权重矩阵 W。然后你可以有另一个矩阵 C,还有 N x M 这样 C如果输入特征 i 和层神经元 j[=31= 之间存在连接,则 ij 为 1 ] 如果没有则为 0。该层(激活前)的输出将是 X * (W · C),其中 * 是通常的矩阵乘积,· 是逐元素乘积。这也应该在训练中发挥很好的作用(假设 C 不可训练),因为 C 为 0 的值不会影响参数更新.唯一的问题是你使用的矩阵比你需要的更大,但除非你有非常多的非常大的层,否则这应该不是什么大问题(肯定比拥有数千个标量图节点问题少)。
对于我的项目,我使用 tensorflow 编写了一个未完全连接的前馈词网络。
由于连接不完全,我只使用标量变量而不是矩阵变量来生成权重。
出于这个原因,我可以灵活地分别连接来自两个相邻层的神经元。
不幸的是,这个网络的训练占用了太多的存储空间。 enter image description here 训练也失败了,如果网络有更多层(我有一个迭代来定义层数)
我已经在 github 上发布了我的代码:https://github.com/hezhouyuanren/BP-like-Decoder.git . 我希望得到你的帮助
您可以创建常规的全连接层,然后 然后 删除连接你不需要。例如,对于具有 N 个特征的输入 X 和一个大小为 M 的层,您将拥有大小为 N x M 的典型权重矩阵 W。然后你可以有另一个矩阵 C,还有 N x M 这样 C如果输入特征 i 和层神经元 j[=31= 之间存在连接,则 ij 为 1 ] 如果没有则为 0。该层(激活前)的输出将是 X * (W · C),其中 * 是通常的矩阵乘积,· 是逐元素乘积。这也应该在训练中发挥很好的作用(假设 C 不可训练),因为 C 为 0 的值不会影响参数更新.唯一的问题是你使用的矩阵比你需要的更大,但除非你有非常多的非常大的层,否则这应该不是什么大问题(肯定比拥有数千个标量图节点问题少)。