如何惩罚TensorFlow中的负权重?

时间:2018-05-03 15:14:10

标签: python tensorflow

我正在使用TensorFlow建立一个神经网络,并且我试图对权重矩阵中的负值实施二次惩罚,即P(W [i,j])= W [i,j ] ^ 2如果W [i,j]< 0.

总之,我初始化了权重,执行了一些操作,定义了最小化的主要目标函数,并将此非负性惩罚定义如下:

self.W = tf.Variable(tf.random_uniform((input_dim, hidden_dim), minval=-k, maxval=k, dtype=np.float32), dtype=tf.float32)

objective = ...

nonnegativity = tf.nn.l2_loss(tf.nn.relu(tf.negative(self.W)))

loss = objective + 0.01*nonnegativity
self.train_op = tf.train.AdamOptimizer(0.1).minimize(loss)

我想知道这是否是实施此类惩罚的正确方法。

0 个答案:

没有答案