自定义层的反向传播问题(TF / Keras)

时间:2018-02-08 17:45:09

标签: tensorflow neural-network keras artificial-intelligence conv-neural-network

我一直在研究原型,我遇到了反向传播的问题。我目前正在使用最新的keras和tensorflow构建(作为后端的tensorflow,我已经研究过cntk,mxnet和chainer;所以远远只能让我这样做,但培训时间很慢..)

我的当前层类似于卷积层,其操作多于简单乘法。

我知道张量流应该使用自动微分,如果所有操作都支持它来计算梯度并执行梯度下降。

目前我的图层使用以下运算符:reduce_sum,sum,subtraction,multiplication和division。

我还依赖于以下方法:extract_image_patches,reshape,transpose。

我怀疑这些会导致自动梯度下降的问题。我构建了2层作为测试,一个继承自keras的基础层,而另一个继承自_Conv。在这两种情况下,每当我在模型中的任何地方使用该层时,在训练过程中不会更新权重。

我怎样才能解决这个问题并修复反向传播?

编辑: (这是图层实现https://github.com/roya0045/cvar2/blob/master/tfvar.py

对于测试我自己看https://github.com/roya0045/cvar2/blob/master/test2.py

0 个答案:

没有答案