【问题标题】:Embedding a pre-trained Keras model with different input dimensions嵌入具有不同输入维度的预训练 Keras 模型
【发布时间】:2019-10-15 18:30:44
【问题描述】:

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

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

我希望能够将模型嵌入到序列分类模型中,以便输入形状为(num_items, num_terms, 45),并通过原始字符模型运行以输出大小为(num_items, num_terms, 128) 的层。

有没有办法在 Keras 中做到这一点,即使角色模型一次只能分类一个词?也许有某种 lambda 层?

感谢您提供的任何帮助!

【问题讨论】:

    标签: python tensorflow keras


    【解决方案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? (我不确定这会有多好,我还没有尝试过)。

    【讨论】:

    • 谢谢。 tf.map_fn 正是我完成这项任务所需要的。
    猜你喜欢
    • 2021-07-03
    • 1970-01-01
    • 2021-11-14
    • 2019-03-08
    • 2018-12-21
    • 1970-01-01
    • 2021-08-13
    • 2018-01-10
    • 2019-11-14
    相关资源
    最近更新 更多