【问题标题】:Max over time pooling in KerasKeras 的最大时间池化
【发布时间】:2017-06-16 22:06:34
【问题描述】:

我在 Keras 中将 CNN 用于 NLP 任务,而不是最大池化,我试图实现随时间的最大池化。

关于如何实现这一点的任何想法/技巧?

我所说的 max over time pooling 的意思是汇集最高值,无论它们在向量中的哪个位置

【问题讨论】:

    标签: machine-learning neural-network nlp keras conv-neural-network


    【解决方案1】:

    假设您的数据形状是(batch_size, seq_len, features),您可以申请:

    seq_model = Reshape((seq_len * features, 1))(seq_model)
    seq_model = GlobalMaxPooling1D()(seq_model)
    

    【讨论】:

    • @bluesummers 它真的回答了你的问题吗?查看model.summary()。您将收到一个最大值,而不是“最高 n 值”。
    • @AlexeyGolyshev,你不会收到最大值,输入是(样本,步骤,特征)的形状,输出是(样本,特征) - 这不限于 1 最大值价值
    • @bluesummers 您的问题很有趣,我正在努力理解。看这段代码:model=Sequential([Embedding(500,10,input_length=5),Reshape((5*10,1)),GlobalMaxPooling1D()]);model.summary() 末尾的输出形状 = (None, 1)。 None 相当于 batch_size 或 samples。特征 = 1. 我哪里错了?
    • 你没有错,我在我的写作中,我的意思是你不一定会得到 1 个最大值 value,你会得到 1 个最大值张量。所以你可以得到一个长度为 n 的向量作为 GlobalMaxPooling1D 的输出 - 这就是我提到的 n - 我将编辑问题
    • @bluesummers 啊,好的。谢谢你的澄清。
    猜你喜欢
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 2018-08-19
    • 2017-01-23
    • 2022-10-30
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    相关资源
    最近更新 更多