使用 PyTorch 实现 Transformer 结构(二):编解码器
在上一篇文章中已经实现了 Transformer 中核心的缩放点积注意力、多头注意力以及前馈神经网络,那么这篇文章中我们先将这几部分封装成编码器层和解码器层,然后再去实现完整的编码器和解码器。
在上一篇文章中已经实现了 Transformer 中核心的缩放点积注意力、多头注意力以及前馈神经网络,那么这篇文章中我们先将这几部分封装成编码器层和解码器层,然后再去实现完整的编码器和解码器。
我计划通过几篇文章来整理一下如何使用 PyTorch 实现 2017 年《Attention is all your need》论文中的 Transformer 模型结构。关于 Transformer 的理论部分网络上已经有非常多的文章或视频讲解,如果你想要了解这部分的内容,我个人比较推荐的是来自图灵出版社公众号的一篇文章:《一文读懂 Transformer,工作原理与实现全解析》。
在网络诊断中,我们常常需要了解数据包从源主机到目标主机所经过的路径,以便定位网络问题。Windows 下的 tracert 就是一种常用的工具,它通过发送一系列带有特殊 TTL(Time To Live)值的 ICMP 数据包,并分析返回的 ICMP 报文,逐步揭示数据包途径的每一个路由器或网关,以及每个节点的响应时间和丢包情况,帮助我们诊断网络延迟和连接问题。
在日常工作中,我们经常需要确认与远程主机的连接状态,而 ping 就是一种常用的网络工具,用于测试与目标主机之间的网络连接。它通过发送 ICMP 回显请求报文,并等待目标主机返回 ICMP 回显应答报文来判断连接是否正常,以及网络延迟和丢包情况。