我正在实现一个神经网络,以在二进制字段中查找代码。该层实质上是学习生成器矩阵(至少尝试这样做),然后在输出处获取代码。对于任何输入u
,代码字c
都以c = matmul(u.T, G)
的形式获得。由于空格是二进制字段,因此1 + 1 = 0
而不是2
。生成器矩阵还仅包含0's
和1's
。我通过使用内核约束来强制执行此操作。现在,我将(21, 11)
代码分为以下几层:
out1 = tf.layers.dense(inputs=message, units=21, activation=None)
out2 = tf.layers.dense(inputs=out1, units=21, activation=tf.nn.sigmoid)
第一层的输出out1
有一些2's
,有时还有3's
。当这进入第二层时,所有2's
都将转换为接近1
的值(3's
不会遇到该问题)。
我想知道的是,是否有任何方法可以在密集层中进行模2加法运算。任何帮助表示赞赏。