Я пытаюсь передать объект RNNCell
в лямбда-слой Keras, чтобы я мог использовать слой Tensorflow в модели Keras следующим образом.
conv_cell = ConvGRUCell(shape = [14, 14],
filters = 32,
kernel = [3,3],
padding = 'SAME')
def convGRU(inputs, cell, length):
output, final = tf.nn.bidirectional_dynamic_rnn(
cell, cell, x, length, dtype=tf.float32)
output = tf.concat(output, -1)
final = tf.concat(final, -1)
return [output, final]
lm = Lambda(lambda x: convGRU(x[0], x[1], x[2])([input, conv_cell, length])
Однако я получаю сообщение об ошибке, чтоconv_cell
не является символическим тензором (это пользовательский слой, основанный на GRUCell Tensorflow).
Есть ли способ передать ячейку в лямбда-слой?Я заставил его работать с functools.partial, но он не может сохранить / загрузить модель, потому что не может получить доступ к функции внутри модели.