嵌入具有不同输入尺寸的预训练Keras模型

时间:2019-10-15 18:30:44

标签: python tensorflow keras

我有一个Keras字符级嵌入模型,该模型接受形状为(num_items, 45)的输入并吐出形状为(num_items, 128)的向量。

我目前在输入分类为(num_items, num_terms, 128)的序列分类模型中使用它,但这需要提前准备数据。

我希望能够将模型嵌入到序列分类模型中,以便输入形状为(num_items, num_terms, 45),并且可以在原始字符模型中运行以输出大小为{{1 }}。

即使角色模型一次只能对一个术语进行分类,在Keras中有没有办法做到这一点?也许带有某种Lambda层?

感谢您可以提供的任何帮助!

1 个答案:

答案 0 :(得分:1)

您是否还需要使用递归模型来训练分类器?因为如果没有,您也许可以使用tf.map_fn在lambda层上实现此目标:

inputs = keras.layers.Input(shape=(num_terms, num_items, 45))
processed = keras.layers.Lambda(lambda x: tf.map_fn(classifier, x))(inputs)

请注意,此处会交换num_terms和num_items的顺序,因为tf.map_fn遍历第一个维度。

否则,您也许可以在模型周围编写自定义RNN单元并使用RNN? (我不确定这样做的效果如何,我还没有尝试过。)