在Tensorflow中共享单个权重(而不是整个层),也称为权重相等约束

时间:2018-12-25 15:18:44

标签: tensorflow deep-learning

我正在寻找针对以下问题的Tensorflow / Python解决方案:

在神经网络中,第一隐藏层具有与输入层相同数量的节点。令I1,I2,...,In为n个输入节点,而H1,H2,...,Hn为隐藏层节点。然后,到节点Hi的净输入为net(Hi)= W_within * Ii + W_between * I1 + W_between * I2 + ... + W_between * In)。换句话说,只有两个权重:

  • W_within 是将第i个输入节点连接到第i个隐藏节点的标量权重
  • W_between 是将第i个输入节点连接到第j个隐藏节点(i不等于j)的标量权重

有人对如何实现这一点有想法吗?我觉得我可能需要定义由标量组成的tf.Variables并手动完成所有线性代数(就像我上面写的一样),但它看起来丑陋且效率低下,所以我想知道是否有更好的方法... < / p>

编辑:关于如何解释这种网络的两种观点

  1. 我们可以将其视为对n * n权重具有约束的密集层。这些约束是严格的相等约束W11 = W22 = W33 = ... = Wnn和W12 = W13 = ... = W21 = W23 = ....-但我不知道如何实现这些相等约束。
  2. 我们可以将其视为卷积层,其中过滤器覆盖了整个输出。此外,过滤器权重是链接的,只有两个自由度-但我不知道如何在过滤器中链接权重。

0 个答案:

没有答案