使用具有keras v2的遮罩层时的Theano错误

时间:2017-03-16 13:39:10

标签: keras

我只是切换到新的keras API并修改我的所有调用以尊重新API。

我在拟合期间遇到了来自theano的错误(使用fit_generator):

theano.gof.fg.MissingInputError: ("An input of the graph, used to compute Elemwise{neq,no_inplace}(/masking_1_input, DimShuffle{x,x,x}.0), was not provided and not given a value.Use the Theano flag exception_verbosity='high',for more information on this error.", /masking_1_input)

当我抑制遮罩层时,错误消失。

在转移到keras 2之前,我的网络工作正常。

网络遵循暹罗模式,其组成如下:

核心(暹罗的重复部分)是由以下内容组成的顺序:

  • 一个遮蔽层
  • 一个LSTM(return_sequences设置为False)
  • 4个密集层(中间有Dropout图层)

暹罗是一个像这样的功能模型:

  • 2个输入附加到核心层的同一实例
  • 使用lambda(简单的欧氏距离)输出一个

损失是一种自定义的对比损失。

主要的暹罗建筑,以及欧几里德距离和对比损失,受到了keras暹罗例子的启发(https://github.com/fchollet/keras/blob/master/examples/mnist_siamese_graph.py

我尝试了一个更简单的例子(只是Masking / LSTM / Dense没有lambda和自定义丢失),但无法重现错误。

我是否遗漏了某些内容,或者由于API更改而导致错误?

修改:我已将代码(仅限网络创建)放在https://gist.github.com/slashvar/286cfbeed568a70d1f29e4fa77d467b4

0 个答案:

没有答案