【发布时间】:2021-05-22 10:42:33
【问题描述】:
假设我们有一个简单的神经网络,有 4 个Dense 层,Lin -> L1 -> L2 -> Lout;假设L2 = matrix[1x5],这5个值可以表示为[a1, a2, a3, a4, a5];当我们训练模型时,我们知道有很多组[a1, a2, a3, a4, a5]满足[1,2,3,4,5][1,0,4,5,5][0,0,15,0,0][0,0,0,5,0]等数据;
我的问题是如何为层权重添加约束,以便我们可以确保它们中的大多数为 0。例如,4组L2权重[1,2,3,4,5][1,0,4,5,5][0,0,15,0,0][0,0,0,5,0],其中第3和第4个有4个零;和 5
我们知道 TensorFlow Keras 具有以下功能:https://keras.io/api/layers/constraints/
但我的问题没有内置约束。关于如何编写这样一个约束的任何想法,或者可能有另一种方法来做到这一点?
更具体地说,我们有很多向量,我们想要对向量进行分类,我们想要一个层来识别哪些列是重要的(但我们不知道确切的列,比如词嵌入,我们需要将一个词转换为向量; 这里我们需要将向量转换为重要性位掩码,然后进行进一步处理),我们可以删除其他列。例如,我们有特征[x1, x2, x3, x4, x5],我们得到L2 [0,0,0,5,0],那么我们可以说,第4列很重要,因此我们可以将特征向量转换为[0, 0, 0, 5 * x4, 0]
提前谢谢。
【问题讨论】:
标签: tensorflow constraints dropout