Keras:具有受限内核的密集层

时间:2018-10-04 08:04:12

标签: tensorflow keras deep-learning

使用Keras,我想看看限制在密集层中对内核的影响,例如-如果将其限制为对称或反对称,会发生什么?

非常简单的示例:图层

    keras.layers.Dense(2, activation=None, use_bias=False, input_shape(1,))

具有两个可训练的参数a(0)和a(1),我希望启用a(0)=-a(1)。我尝试使用自定义约束(投影到可允许的内核上),例如

    proj=tf.constant([1.0,0.0,-1.0,0.0],shape=[2,2])
    myw = math_ops.matmul(proj,tf.reshape(w,[2,1]))
    return tf.reshape(myw,[1,2])

强制a(0)=-a(1)。尽管在这种简单情况下确实可行,但至少会感到不对劲,因为在学习阶段,渐变不会考虑此投影。另外,还有一个可训练的参数,它不会影响结果。

实现此目标的正确方法是什么(当然,对于更大的尺寸和更复杂的投影)?

直接的方法似乎是编写一个自定义层,但是我对此没有任何经验。

0 个答案:

没有答案