首页 > 解决方案 > 如果我使用像 tf.layers.dense 这样的高级 API 并且没有明确定义我的权重,如何截断我的权重矩阵?

问题描述

我正在使用高级 tensorflow API tf.layers.dense 构建自定义神经网络。在这里,它获取我的输入数据并自动执行操作 (input*weights)+bias,然后对其应用激活函数。不需要明确定义权重。在经过一定数量的时期后,我需要将一些权重固定为零(强制执行 L0 范数)。我怎么做?有这方面的答案,但是当权重像这样明确定义时,它们都可以工作

标签: pythontensorflow

解决方案


使用tf.layers.Dense确实由 内部构建的对象tf.layers.dense并保持相同的接口,

layer = Dense(units)
output = layer.apply(inputs)

权重现在在layer.kernel类的属性内。

但是,如果您需要做非标准的事情并使用 tensorflow 的低级 API,请避免使用预构建层。

最后,如果您仍想使用图层 API,您可以尝试扩展该类或Layer为您的特定需求构建一个新的子类。


推荐阅读