【发布时间】:2018-04-01 06:32:56
【问题描述】:
我尝试将this 模型移植到Keras v2,但以下功能有问题:
def __call__(self, sent1, sent2):
def _outer(AB):
att_ji = K.batch_dot(AB[1], K.permute_dimensions(AB[0], (0, 2, 1)))
return K.permute_dimensions(att_ji, (0, 2, 1))
return merge([self.model(sent1), self.model(sent2)], mode=_outer,
output_shape=(self.max_length, self.max_length))
根据文档,mode 是:
字符串或 lambda/函数。如果是字符串,必须是一 的:'sum','mul','concat','ave','cos','dot','max'。 如果是 lambda/function,它应该将张量列表作为输入 并返回一个张量。
在新的Keras 版本中什么是等效函数(当模式为函数/lambda 时)以避免以下警告:
UserWarning: The `merge` function is deprecated and will be removed after 08/2017. Use instead layers from `keras.layers.merge`, e.g. `add`, `concatenate`, etc.
return merge([attention, sentence], mode=_normalize_attention, output_shape=(self.max_length, self.nr_hidden))
【问题讨论】:
标签: machine-learning tensorflow keras keras-layer keras-2