zoukankan      html  css  js  c++  java
  • CNN 和RNN 中input 长度不一致问题

    转自:https://www.jianshu.com/p/86d667ee3c62,感谢分享!

    pad_sequences & Masking layer

    上面提到,文本数据也可以用CNN来处理。很多人有疑问,CNN的输入通常是一个(图像)矩阵,而文本中句子或者文章的长度不一,CNN如何将长短不一的输入转化成矩阵呢?
    答案是pad_sequences

    keras.preprocessing.sequence.pad_sequences(sequences, maxlen=None, dtype='int32',
        padding='pre', truncating='pre', value=0.)
    

    sequences: 所有的句子
    maxlen: 把所有句子的长度都定为maxlen,如果是None,则maxlen自动设置为sequences中最长的那个
    padding: 在句子前端(pre)或后端(post)填充
    truncating: 截断过长的句子,从前端(pre)或者后端(post)截断
    value: 填充的数值

    假设我们使用0填充,那么多无用的0,会不会影响结果呢?
    对于CNN来说,是不影响的。
    对于RNN也需要pad_sequences,此时填充的0是多余的,就需要使用Masking layer忽略其中的0值。

    model = Sequential()
    model.add(Masking(mask_value=0., input_shape=(timesteps, features)))
    model.add(LSTM(32))


    作者:fighting41love
    链接:https://www.jianshu.com/p/86d667ee3c62
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    jquery加入购物车飞入的效果
    jQuery点击div其他地方隐藏div
    移动对meta的定义
    ZOJ
    博弈dp入门 POJ
    ZOJ 2967计算几何+单调栈
    牛客训练41D最小相似度bfs
    球的体积并
    二进制上的数位dpPOJ 3252
    数位dp入门 HDU 2089 HDU 3555
  • 原文地址:https://www.cnblogs.com/baiting/p/8148656.html
Copyright © 2011-2022 走看看