《动手学深度学习 Pytorch版》 10.1 注意力提示

10.1.1 生物学中的注意力提示

“美国心理学之父” 威廉·詹姆斯提出的双组件(two-component)框架:

  • 非自主性提示:基于环境中物体的突出性和易见性

  • 自主性提示:受到了认知和意识的控制

10.1.2 查询、键和值

  • 注意力机制与全连接层或汇聚层区别开来的元素:是否包含自主性提示

  • 在注意力机制的背景下:

    • 自主性提示被称为查询(query)

    • 给定任何查询,注意力机制通过注意力汇聚(attention pooling) 将选择引导至感官输入(sensory inputs),例如中间特征表示。

    • 在注意力机制中,这些感官输入被称为值(value)。更通俗的解释,每个值都与一个**键(key)**配对,这可以想象为感官输入的非自主提示。可以通过设计注意力汇聚的方式,便于给定的查询(自主性提示)与键(非自主性提示)进行匹配,这将引导得出最匹配的值(感官输入)。

10.1.3 注意力的可视化

import torch
from d2l import torch as d2l

平均汇聚层可以被视为输入的加权平均值,注意力汇聚得到的是加权平均的总和值。下面的 show_heatmaps 函数,其输入 matrices 的形状是(要显示的行数,要显示的列数,查询的数目,键的数目)

#@save
def show_heatmaps(matrices, xlabel, ylabel, titles=None, figsize=(2.5, 2.5),
                  cmap='Reds'):
    """显示矩阵热图"""
    d2l.use_svg_display()
    num_rows, num_cols = matrices.shape[0], matrices.shape[1]
    fig, axes = d2l.plt.subplots(num_rows, num_cols, figsize=figsize,
                                 sharex=True, sharey=True, squeeze=False)
    for i, (row_axes, row_matrices) in enumerate(zip(axes, matrices)):
        for j, (ax, matrix) in enumerate(zip(row_axes, row_matrices)):
            pcm = ax.imshow(matrix.detach().numpy(), cmap=cmap)
            if i == num_rows - 1:
                ax.set_xlabel(xlabel)
            if j == 0:
                ax.set_ylabel(ylabel)
            if titles:
                ax.set_title(titles[j])
    fig.colorbar(pcm, ax=axes, shrink=0.6);
attention_weights = torch.eye(10).reshape((1, 1, 10, 10))  # 生成对角线全1,其余部分全0的二维数组
show_heatmaps(attention_weights, xlabel='Keys', ylabel='Queries')  # 仅当查询和键相同时,注意力权重为1,否则为0。


在这里插入图片描述

练习

(1)在机器翻译中通过解码序列词元时,其自主性提示可能是什么?非自主性提示和感官输入又是什么?

自主性提示可能是上下文信息之类的

非自主性提示可能是指在机器翻译过程中使用的其他信息,比如语言学习或人工翻译的知识。

感官输入可能是指输入方式、


(2)随机生成一个 10 × 10 10\times 10 10×10 矩阵并使用 softmax 运算来确保每行都是有效的概率分布,然后可视化输出注意力权重。

attention_weights = d2l.F.softmax(torch.rand((10, 10)), dim=1).reshape((1, 1, 10, 10))
show_heatmaps(attention_weights, xlabel='Keys', ylabel='Queries')


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/104610.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

个人记账理财软件 Money Pro mac中文版软件介绍

Money Pro for mac是一款综合性高的理财工具,Money Pro是一套能够协同工作的工具,可用来追踪账户、管理账单以及制作预算,您可以为每个时间段设置不同的预算限值。财务一切尽在掌控之中。 Money Pro for mac软件介绍 Money Pro for mac提供一…

【QT】对象树

一、QT对象树的概念 先来看一下 QObject 的构造函数: 通过帮助文档我们可以看到,QObject 的构造函数中会传入一个 Parent 父对象指针,children() 函数返回 QObjectList。即每一个 QObject 对象有且仅有一个父对象,但可以有很多个…

【JavaSE语法】数据类型与变量

一、字面常量 常量即程序运行期间,固定不变,不可修改的量称为常量 public class Demo {public static void main(String[] args) {System.out.println("hello World!");System.out.println(100);System.out.println(3.14);System.out.println(A);System…

PLC、触摸屏、上位机之间如何实现无线数据交互功能?

本文以组态王与西门子触摸屏和2台西门子S7-200SMART为例,介绍组态王、触摸屏与多台 PLC在Profinet协议下的自组网无线通信实现过程。在本方案中采用了西门子PLC无线通讯终端——DTD418M,作为实现无线通讯的硬件设备。我们无需更改网络参数和原有程序&…

CANoe-使用IG Ethernet Packet Builder实现IP包分片的若干问题

在文章《CANoe-Ethernet IG和Ethernet Packet Builder的使用和区别》中,我们讲过Packet Builder可以组装多种类型的以太网报文: 当我们想组装一条icmpv4 echo request报文,payload只有1个字节的数据FF时,选择ICMPv4 Packet,创建一条ICMPv4报文,把payload改为1个字节: 然…

[开源]一个低代码引擎,支持在线实时构建低码平台,支持二次开发

一、开源项目简介 TinyEngine低代码引擎使能开发者定制低代码平台,支持在线实时构建低码平台,支持二次开发或集成低码平台能力。 二、开源协议 使用MIT开源协议 三、界面展示 四、功能概述 TinyEngine是一个低代码引擎,基于这个引擎可以构…

腾讯云轻量应用服务器性能差吗?为什么便宜?

腾讯云轻量应用服务器性能如何?为什么便宜是不是性能不行?腾讯云百科txybk.com从轻量应用服务器的CPU型号、处理器主频、内存、公网带宽、月流量和系统盘多方面来详细测评轻量性能,轻量应用服务器性价比高,并不是性能不行&#xf…

react native 使用夜神模拟器开发调试 windows+android

执行adb devices, 提示List of devices attached 打开本地sdk目录中的platform-tools文件夹,复制下面3个文件 打开夜神模拟器安装目录中的bin目录,把复制出来的文件复制替换到bin目录中 在复制一份platform-tools目录中的adb.exe,重命名为…

TypeError: data.reduce is not a function:数据类型不匹配

错误展示: 错误分析: 首先来看看前端代码:我表格绑定的数据模型是tableData,而我tableData定义的是一个数组 其次看看后端给的数据: 传递的是一个对象,而不是一个数组! 这样原因就找出了&…

计算机网络相关硬件介绍

计算机相关硬件 计算机由运算器、控制器、存储器、输入设备和输出设备等五个逻辑计算机硬件部件组成。 一、中央处理器(CPU)(运算器、控制器) (1)运算器 运算器是对数据进行加工处理的部件&#xff…

安卓主板_MTK联发科4G低功耗安卓主板开发板方案

ZM358-DP安卓主板是一款性能功能强大的4G安卓平台。它采用了联发科MTK6737、MTK8735、MTK6753、MTK6735等芯片平台,64位四核Cortex-A53架构,主频高达1.3GHz,搭载ARM Mail-T450 MP2 GPU。 安卓主板具备多路显示屏接口,包括双LVDS、…

可自由搭建的能源管理平台,轻松实现高效节能

随着科技的不断发展,能源问题越来越重要。为了提高能源的利用效率,减少能源浪费,能源用能企业纷纷开始注重能源管理工作,并想要一款可以进行高效管理的工具。智慧能源管理平台,是一款可自由搭建的能源管理平台&#xf…

一个全响应式的企业级物联网平台,开源了

JetLinks 是一个开源的、企业级的物联网平台,它集成了设备管理、数据安全通信、消息订阅、规则引擎等一系列物联网核心能力,支持以平台适配设备的方式连接海量设备,采集设备数据上云,提供云端 API,通过调用云端 API 实…

【计网 DNS】计算机网络 DNS协议详解:中科大郑烇老师笔记 (六)

目录 0 引言1 DNS概述1.1 定义1.2 DNS域名结构1.2 域名解析步骤 🙋‍♂️ 作者:海码007📜 专栏:计算机四大基础专栏📜 其他章节:网络快速入门系列、计网概述、计网应用层详解、计网Web和HTTP、计网FTP、计网…

深度学习_4_实战_直线最优解

梯度 实战 代码: # %matplotlib inline import random import torch import matplotlib.pyplot as plt # from d21 import torch as d21def synthetic_data(w, b, num_examples):"""生成 Y XW b 噪声。"""X torch.normal(0,…

Linux:firewalld防火墙-基础使用(2)

上一章 Linux:firewalld防火墙-介绍(1)-CSDN博客https://blog.csdn.net/w14768855/article/details/133960695?spm1001.2014.3001.5501 我使用的系统为centos7 firewalld启动停止等操作 systemctl start firewalld 开启防火墙 systemct…

华为OD机考算法题:高效的任务规划

题目部分 题目高效的任务规划难度难题目说明 你有 n 台机器编号为 1 ~ n,每台都需要完成一项工作, 机器经过配置后都能独立完成一项工作。 假设第 i 台机器你需要花 分钟进行设置, 然后开始运行, 分钟后完成任务。 现在&#x…

报错:SSL routines:ssl3_get_record:wrong version number

一、问题描述 前后端联调的时候,连接后端本地服务器,接口一直pending调不通,控制台还报以下错误: 立马随手搜索了一下解决方案,但是emmm,不符合前端的实际情况: 二、解决方法: 实际…

IT行业职场走向,哪些方向更有就业前景?——IT行业的发展现状及趋势探析

文章目录 每日一句正能量前言IT技术发展背景及历程IT行业的就业方向有哪些?分享在IT行业的就业经历后记 每日一句正能量 如果你认为你自己无法控制自己的情绪,这就是一种极为严重的不良暗示。 前言 在信息量浩如烟海、星罗棋布的大数据时代,…

服务器动态/静态/住宅/原生IP都是什么意思

​  在互联网的世界中,我们经常会听到关于IP地址的各种说法,比如服务器动态IP、静态IP、住宅IP和原生IP。那么这些术语究竟代表着什么意思呢?让我们一起来了解一下。 动态IP 动态IP(Dynamic IP)是指互联网服务提供商(ISP)在每次用户上网时&#xff0c…