本文以短问答为背景,串联几个keras下常用的函数

0:keras.preprocessing

该模块是对数据的预处理模块
https://blog.csdn.net/winter_python/article/details/108615737

由于keras只能接受相等长度的序列,因此在将数据输入之前,要将所有的句子缩放成等长

input_length=10
keras.preprocessing.sequence.pad_sequences(sentence, maxlen=input_length, value=0.0)

分割后的句子长度为10,超过10的将被直接截断,小于10的将被value进行填充,直到所有的句子均被转化成等长的序列。

1:Embedding

嵌入层也作为模型搭建的第一层,将所有的字典词训练出一个词的嵌入矩阵,该矩阵的行维度会很高==字典词的个数,然后用ont-hot乘该矩阵即可。对于词向量的输出维度可以进行设置,一般为128维度
https://blog.csdn.net/buchidanhuang/article/details/99186395

keras.layers.Embedding(input_dim=word_num, output_dim=input_dimension)

这里要注意输入的维度是整个词典的个数

2:双向LSTM

搭建一个双向的lstm模型:LSTM模型可以减弱长期依赖的影响,可以较好的理解语义和语序

keras.layers.Bidirectional(keras.layers.LSTM(int(lstm_dim / 2), return_sequences=True))

return_sequences=False表示最后的结果只输出一个
return_sequences=True表示输出每个时间T的结果,在NLP来说就是每个词(可以把一个词看成一个T)的结果都输出,而不只是输出最后的整体结果

由于是双向模型,为了维持最后输出的模型维度,将int(lstm_dim / 2),最后的模型实际上是将向前计算的序列1与向后计算的序列2进行拼接,两个lstm_dim / 2拼接后的维度是lstm_dim,也是隐含层参数的个数

lstm输出的第一个维度就是时间维度【T,sequence_length,output_dim】,也可以认为是词的个数10

3:TimeDistributed

将lstm的结果再过一个全链接层,这里有一个TimeDistributed,可以理解成将dence层过Time次。如果放在NLP下面,就是将lstm输出的每个词向量(10个)分别过dence层

TimeDistributed(Dense(lstm_dim, activation="relu"))(lstm)

ReLu的使用,使得网络可以自行引入稀疏性。这一做法,等效于无监督学习的预训练

4:GlobalMaxPooling1D()

先计算匹配的相似度,在steps维度中求解feature全局最大值(batch_size, steps, features),最后输出一个(batch_size, features)。也就是看成匹配出相同batch_size大小的句子

GlobalMaxPooling1D()(q_out)

5:Dense

将问答进行拼接后太长,过一个dense层进行降维,然后再过有个sigmoid函数判断其是否适合

out = keras.layers.concatenate([q_out, a_out], axis=1)
out = Dense(50, activation="relu")(out)
out = Dense(1, activation="sigmoid")(out)

简单的梳理了下思路,理解有误的地方还请各位大侠指出~~~~~

keras 中的keras.preprocessing、Embedding、GlobalMaxPooling1D()、 TimeDistributed相关推荐

  1. keras中的keras.utils.to_categorical方法

    to_categorical(y, num_classes=None, dtype='float32') 将整型标签转为onehot.y为int数组,num_classes为标签类别总数,大于max( ...

  2. python的matmul_浅谈keras中的batch_dot,dot方法和TensorFlow的matmul

    概述 在使用keras中的keras.backend.batch_dot和tf.matmul实现功能其实是一样的智能矩阵乘法,比如A,B,C,D,E,F,G,H,I,J,K,L都是二维矩阵,中间点表示 ...

  3. Keras vs tf.keras: 在TensorFlow 2.0中有什么区别?

    导读 在本文中,您将发现Keras和tf.keras之间的区别,包括TensorFlow 2.0中的新增功能. 万众期待的TensorFlow 2.0于9月30日正式发布. 虽然肯定是值得庆祝的时刻, ...

  4. Keras与tf.keras:TensorFlow 2.0有什么区别?

      在本教程的第一部分中,我们将讨论Keras和TensorFlow之间相互交织的历史,包括他们共同的受欢迎程度如何相互滋养,相互促进和滋养,使我们走向今天.   然后,我将讨论为什么您应该在以后的所 ...

  5. Keras vs. tf.keras: 在TensorFlow 2.0中有什么区别?

    在本教程中,您将发现Keras和tf.keras之间的区别,包括TensorFlow 2.0中的新增功能. Keras vs. tf.keras: 在TensorFlow 2.0中有什么区别? htt ...

  6. 【小白学习keras教程】十一、Keras中文本处理Text preprocessing

    @Author:Runsen 文章目录 Text preprocessing Tokenization of a sentence One-hot encoding Padding sequences ...

  7. keras中lstm参数_如何使用Keras为自定义NER构建深度神经网络

    在这篇文章中,我们将学习如何使用Keras创建一个简单的神经网络来从非结构化文本数据中提取信息(NER). 模型架构 在这里,我们将使用BILSTM + CRF层.LSTM层用于过滤不需要的信息,将仅 ...

  8. Tensorflow Keras中的masking与padding的学习笔记

    Tensorflow Keras中的masking与padding 1. 背景 2. padding填充序列数据例子 3. 遮盖(masking ) 3.1 添加一个 keras.layers.Mas ...

  9. 详解keras中的Mask机制

    文章目录 一. Mask背景 1.2 例子1 1.2 例子2 二. 原理 三. 方式 3.1 配置keras.layers.Embedding 层 3.2 添加keras.layers.Masking ...

最新文章

  1. Widget(桌面插件)
  2. CF611F. New Year and Cleaning
  3. 【渝粤题库】陕西师范大学210019 学前教育科研方法 作业(专升本)
  4. Html 进行DOM 操作(放缩,颜色...),HTML抓图(放缩,滚动,拼接)
  5. 外贸网站需要ERP系统吗?
  6. matlab 文件列表,如何從Matlab寫入多個列表到同一個excel文件?
  7. python如何提高性能_python – 如何在这个短代码中提高numpy性能...
  8. git提交过滤target文件 idea_详解如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件...
  9. 利用jackson-dataformat-csv读写csv文件
  10. python实现微信聊天机器人_用python玩微信,实现聊天机器人,新手必学
  11. 扩展欧几里得___追风少年的坐骑(2016swust信息院赛)
  12. Solidjs 简介
  13. 使用jsfl批量生成fla文件(文件是在多个文件夹下)如果是单个文件夹下也可以
  14. 强迫症患者之黑苹果优化(启动画面、CPU重命名、显示真实主板、开启12代CPU全核心)
  15. React集成中国地图
  16. IBM将裁员1700人,科技公司最好的时代过去了吗?
  17. 在Linux中运行Nancy应用程序
  18. 无线路由速度简单解释
  19. PESD5V0F1BSF特性好处
  20. JS模块化的'前世今生'

热门文章

  1. 006-CSS定位布局
  2. python 类方法 实例方法的区别_python基础教程Python实例方法、类方法、静态方法区别详解...
  3. python文章伪原创_python制作伪原创文章?
  4. Linux 杀死所有进程
  5. 360浏览器的js兼容与360拦截浮动广告
  6. android格式转化,旭日Android视频格式转换器
  7. python爬虫滑动验证码_python爬虫21 | 对于b站这样的滑动验证码,不好意思,照样自动识别...
  8. PHP8.X的新特性
  9. 音视频开发-SRS 4.0开发环境搭建丨webrtc丨FFmpeg丨SRS流媒体服务器开发
  10. PS:制作波浪型烟雾效果的滤镜教程