我对the latest version of Keras有问题。我想为ConvLSTM2D
提供一个辅助输入,它将充当层内存的初始值设定项。在
这个特性应该被实现,但是,下面的代码
from keras.layers import Input
from keras.models import Model
from keras.layers.convolutional_recurrent import ConvLSTM2D
latent_dim, mesh_size = 10, (20, 20)
prior_in = Input(shape=mesh_size + (latent_dim, ))
core_in = Input(shape=(None, ) + mesh_size + (1, ))
core_out = ConvLSTM2D(latent_dim, activation='elu', kernel_size=(3, 3),
padding='same')(core_in, initial_state=[prior_in, prior_in])
model = Model([prior_in, core_in], core_out)
加薪
^{pr2}$另一方面,这个特性似乎是unit tested。在
经过一些调试后,我发现经过单元测试的代码和我的代码之间的区别是,K.is_keras_tensor(initial_state)
只对上面发布的代码有效。当程序到达convolutional_recurrent.py line 313时,这一点很重要。如果我通过将第313行改为
if False and K.is_keras_tensor(additional_inputs[0]):
误差不会产生,而且可以训练、保存、加载模型,并使用它进行预测而不会出现任何问题。在
问题是:有人观察到同样的行为吗?你对如何在客户端解决这个问题有什么建议(不修改Keras源代码)?有人能解释一下if
for*)子句中的代码是什么吗?在
目前没有回答
相关问题 更多 >
编程相关推荐