哪些操作支持自动渐变



我的网络中有一个相当复杂的量化层,其中包含tf.tiletf.expand_dims操作等操作。我注意到我的网络训练不好。查看一些调试输出,我看到此量化层之前的全连接层的权重梯度为零(我使用optimizer.compute_gradients来确定这一点)。这是否意味着量化层之前的内容在训练中不会更新?

一般来说:如何确定哪些操作允许梯度通过,哪些操作不通过?例如,做上面提到的tf.tiletf.expand_dims让梯度通过'

如果您的模型中存在没有梯度的操作,您将收到一个错误:

LookupError: No gradient defined for operation [...]

所以你的问题似乎在其他地方,也许你在某处乘以零会杀死梯度。您的问题中没有足够的信息来找到问题的真正原因。

编辑:我没有直接回答哪些操作支持自动渐变的问题。

没有在文档中列出,我认为您只能通过检查源代码或使用操作来查看它,看看在尝试优化模型时是否遇到上述错误。

对于tf.tiletf.expand_dims,定义了梯度。

最新更新