在Keras中的自定义图层中计算渐变

问题描述 投票:0回答:1

我编写了一个代码,用于在Keras的自定义层中计算Choquet池。在Colab链接下方的笔记本:https://colab.research.google.com/drive/1lCrUb2Jm680JRnACPxWpxkOSkP_DlHGj如您所愿,代码恰好在函数custom_grad内部崩溃时在梯度计算中崩溃。这是不可能的,因为我返回的0渐变形状与上一层相同。所以我有2个问题:

  • 在Keras(或Tensorflow)中是一种计算图层输入与其输出之间的梯度的方法吗?
  • 如果我传递的张量具有与上一层相同的形状,但填充了0,为什么代码不起作用?

感谢您的关注,我们正在等待您的帮助。在此先感谢

python tensorflow keras google-colaboratory keras-layer
1个回答
0
投票

没有人对此问题感兴趣。经过几次试验,我找到了解决方案。问题是,正如Mainak431在此GitHub存储库中发布的那样:link to diff and non-diff ops in tensorflow

存在可微分的TensorFlow操作和不可微分的操作。在Colab笔记本中,我以不可区分的scatter_nd_update为例。因此,我建议,如果您想在Keras中创建自己的“自定义图层”以查看以上列表,以便使用允许Keras为您自动区分的操作。无论如何,我正在努力使其尽可能多地了解该开放式研究主题。我记得在神经网络中,“ LEGO-ing”是临界点,我确定你们中的许多人都对在深度神经网络模型中添加操作(聚合或其他操作)感兴趣。特别感谢Maniak431,我爱你<3

© www.soinside.com 2019 - 2024. All rights reserved.