NLP系列讲解笔记

本专题是针对NLP的一些常用知识进行记录,主要由于本人接下来的实验需要用到NLP的一些知识点,但是本人非NLP方向学生,对此不是很熟悉,所以打算做个笔记记录一下自己的学习过程,也是为了博士的求学之路做铺垫!希望大家喜欢。如果有哪里写的不对,欢迎大家批评指正,感谢感谢!

传送门:

第一章 细讲:Attention模型的机制原理


目录

  • NLP系列讲解笔记
  • 前言
  • 工具简介
    • TensorFlow
    • Keras
    • tensorflow-addons
    • 本实验所用库的版本信息
  • Soft Attention
    • tfa的实现
      • LuongAttention
      • Bahdanau Attention
      • 官网使用示例
    • Keras的实现
  • Self Attention
    • 自建网络
    • 为什么self attention要scaled?
  • 总结
  • 彩蛋
  • 参考

前言

最近几年,Attention模型在NLP乃至深度学习、人工智能领域都是一个相当热门的词汇,被学术界和工业界的广大学者放入自己的模型当中,并得到了不错的反馈。再加上BERT的强势表现以及Transformer的霸榜,让大家对Attention变得更加感兴趣,本人在上一篇文章对Attention模型的机制原理进行了详细的介绍分析,有兴趣的可以自行查看哟。

纸上得来终觉浅,绝知此事要躬行。机制原理、理论讲的再好,没有实验证明也白搭。实践是检验真理的唯一途径。上一篇文章出来,有人建议我出个代码讲解、具体实现方式。正好本人也要实验,所以我打算这一篇文章给大家详细讲解一下使用范围最广的Soft Attention以及Self Attention的代码实现,主要包括TensorFlow Addons、Keras封装函数以及自建网络三种形式,其他Attention模型的具体实现其实都差不太多,具体代码可以自行百度。


工具简介

本文主要采用的是TensorFlow、Keras以及tensorflow-addons等python库。

TensorFlow

TensorFlow 是一个端到端开源机器学习(主要是深度学习)平台。它拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源,可助力研究人员推动先进机器学习技术的发展,并使开发者能够轻松地构建和部署由机器学习提供支持的应用。截止目前,最新版本为v2.6.0。

官网API:https://tensorflow.google.cn/api_docs/python/tf

Keras

Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化。在TF2.x中可作为TensorFlow的高层API,并同步更新版本。

官网API:https://keras.io/zh/

tensorflow-addons

在TensorFlow2.x版本引入了 Special Interest Group (SIG),特殊兴趣小组,主要实现新发布论文中的算法

TensorFlow2.x将tf.contrib移除,许多功能转移到了第三方库,而TensorFlow Addons 是一个符合完善的 API 模式但实现了核心 TensorFlow 中未提供的新功能的贡献仓库。TensorFlow 原生支持大量算子、层、指标、损失和优化器。但是,在像机器学习一样的快速发展领域中,有许多有趣的新开发成果无法集成到核心 TensorFlow 中(因为它们的广泛适用性尚不明确,或者主要由社区的较小子集使用)。

tensorflow-seq2seq在新版的tf中合并到tensorflow-addons中去了,除此之外tensorflow addons还有很多比较新的实现。

安装:pip install tensorflow-addons

官网API: https://tensorflow.google.cn/addons/api_docs/python/tfa

需要注意的是,tfa的版本需要和tf以及python的版本对应,不然运行会报错,具体版本对应信息看下图:

本实验所用库的版本信息

tensorflow-gpu==2.2.0
keras==2.4.3
tensorflow-addons==0.11.2
numpy==1.18.1
pandas==1.0.1
matplotlib==3.1.3

OK,工具介绍完毕,调参

【自然语言处理】2. Attention实现详细解析( tfa, keras 方法调用源码分析 自建网络)相关推荐

  1. Framework 源码解析知识梳理(5) startService 源码分析

    一.前言 最近在看关于插件化的知识,遇到了如何实现Service插件化的问题,因此,先学习一下Service内部的实现原理,这里面会涉及到应用进程和ActivityManagerService的通信, ...

  2. java futuretask 源码解析_Java异步编程——深入源码分析FutureTask

    Java的异步编程是一项非常常用的多线程技术. 之前通过源码详细分析了ThreadPoolExecutor<你真的懂ThreadPoolExecutor线程池技术吗?看了源码你会有全新的认识&g ...

  3. 源码解析2-GUI-绘制引擎(QPainter源码分析 )

    Qt源码解析 索引 Qt图形用户界面 应用程序窗口 Qt GUI 模块中最重要的类是QGuiApplication和QWindow.想要在屏幕上显示内容的 Qt 应用程序需要使用这些.QGuiAppl ...

  4. opencv源码解析之(6):hog源码分析

    一.网上一些参考资料     在博客目标检测学习_1(用opencv自带hog实现行人检测) 中已经使用了opencv自带的函数detectMultiScale()实现了对行人的检测,当然了,该算法采 ...

  5. java eventbus 原理_本文为 Android 开源项目实现原理解析 EventBus 部分,从源码分析 EventBus 的实现原理...

    之前太忙导致 Android 开源项目实现原理解析 一度搁浅,目前一期进行中,我也完成了 EventBus 分析的初稿,大家可以稍微看看后面会继续润色下. PS:本文直接复制 Markdown,格式有 ...

  6. 最详细的Spring核心IOC的源码分析

    https://blog.csdn.net/nuomizhende45/article/details/81158383 详细,清晰,收藏下便于后续查看

  7. python flask源码解析_Flask知识全套及源码分析

    Flask是一个短小精悍可扩展强的框架,他独特之处在于 "上下文管理机制",如果你想要学习Flask使用并了解其中的精髓,那就赶快上车吧.... 内容包含三部分: 1. Flask ...

  8. android 事件分发 代码解析,Android事件分发之源码分析

    原文首发于微信公众号:躬行之,欢迎关注交流! 上篇文章中叙述了 Android 事件分发的大致流程,下面从 Activity.ViewGroup.View 三个方面介绍事件的相关方法,小节如下: Ac ...

  9. threejs 源码解析_ThreeJS 物理材质shader源码分析(顶点着色器)

    ThreeJS 物理材质shader源码分析(顶点着色器) Threejs将shader代码分为ShaderLib和ShaderChunk两部分,ShaderLib通过组合ShaderChunk的代码 ...

最新文章

  1. AI Studio : 利用Paddle框架中的极简框架识别MNIST
  2. 【小白学PyTorch】7.最新版本torchvision.transforms常用API翻译与讲解
  3. C# 中使用JSON - DataContractJsonSerializer
  4. python2.面向对象学生管理系统
  5. Jsoup解析body片段
  6. php下拉列表框 是隐藏变色的代码,jQuery设置下拉框显示与隐藏效果的方法分析...
  7. 【NOIP2002】【Luogu1037】产生数(高精乘低精,DFS暴力搜索)
  8. SRAM,SDRAM,网卡
  9. 计算机网络负载均衡图片,负载均衡计算机网络课程网.ppt
  10. 软考数据库系统工程师day01
  11. 怎样运行python_怎样运行python
  12. JavaScript 实现页面跳转的几种方式
  13. java将jfif格式转换成ipg_无需工具直接将jfif格式图片批量修改为jpg格式图片的方法...
  14. postgresql开启日志
  15. flash AS3.0实现进度条与播放暂停按钮的同步
  16. 新浪微博PC端登陆js分析及Python实现微博post登陆
  17. 情绪识别(python opencv dlib)
  18. php存在文件夹_PHP创建文件夹 PHP判断文件夹文件是否存在
  19. 一文搞懂什么是PWM!
  20. user account control用户帐户控制

热门文章

  1. 大咖齐聚CCIG论坛——文档图像智能分析的产业前沿
  2. matlab prefourier,用matlab求单位阶跃函数的傅立叶变换fourier变换
  3. 2016计蒜之道复赛 微信钱包付款
  4. 批处理自动生成图片Flash信息
  5. GO语言的sdk下载安装和配置
  6. C#:一个拖拽网页图片到本地存储的小工具
  7. 浏览器内核发展历史简述
  8. 卡通动漫系列《快乐星猫》
  9. 卓尔智联的产业互联网新玩法
  10. pytorch计算矩阵的迹