我只是切换到新的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之前,我的网络工作正常。
网络遵循暹罗模式,其组成如下:
核心(暹罗的重复部分)是由以下内容组成的顺序:
暹罗是一个像这样的功能模型:
损失是一种自定义的对比损失。
主要的暹罗建筑,以及欧几里德距离和对比损失,受到了keras暹罗例子的启发(https://github.com/fchollet/keras/blob/master/examples/mnist_siamese_graph.py)
我尝试了一个更简单的例子(只是Masking / LSTM / Dense没有lambda和自定义丢失),但无法重现错误。
我是否遗漏了某些内容,或者由于API更改而导致错误?
修改:我已将代码(仅限网络创建)放在https://gist.github.com/slashvar/286cfbeed568a70d1f29e4fa77d467b4