如何在tensorflow中对CNN内核做限制?
How to make restrictions to the CNN kernel in tensorflow?
我们的特定训练问题要求 CNN 内核中的所有权重必须为正。有人知道怎么做吗?
您正在寻找内核约束,这个 link here 有您问题的答案。
您可以使用内核约束,也可以简单地采用拉格朗日优化技术,为您的整体损失函数添加一个项,以删除您不需要的权重特征。像这样的东西(正如参考答案中提到的那样),
added_loss = -tf.minimum(tf.reduce_min(theta),0)
final_loss = your_loss + added_loss
optimizer.minimize(final_loss)
还需要注意的是,添加这个损失只是鼓励优化寻找一个有theta的解决方案或者你说的权重都是正的,并不能保证最适合的参数都是正的.为确保这种行为,您可以将权重夹在
0 和 +无穷大。
我们的特定训练问题要求 CNN 内核中的所有权重必须为正。有人知道怎么做吗?
您正在寻找内核约束,这个 link here 有您问题的答案。 您可以使用内核约束,也可以简单地采用拉格朗日优化技术,为您的整体损失函数添加一个项,以删除您不需要的权重特征。像这样的东西(正如参考答案中提到的那样),
added_loss = -tf.minimum(tf.reduce_min(theta),0)
final_loss = your_loss + added_loss
optimizer.minimize(final_loss)
还需要注意的是,添加这个损失只是鼓励优化寻找一个有theta的解决方案或者你说的权重都是正的,并不能保证最适合的参数都是正的.为确保这种行为,您可以将权重夹在 0 和 +无穷大。