当前位置: 首页 > news >正文

论文学习——PixelSNAIL:An Improved Autoregressive Geenrative Model

文章目录

    • 引言
    • 论文翻译
      • Abstract
        • 问题
      • Introduction
        • 第一部分
          • 问题
        • 第二部分
          • 问题
      • Model Architecture网络结构
        • 第一部分
        • 问题
        • 第二部分
          • 问题
      • Experiments实验
        • 问题
      • Conclusion结论
        • 问题
    • 总结
    • 参考

引言

  • 这篇文章,是《PixelSNAIL:An Improved Autoregressive Geenrative Model》主要应用到的三个技术之一,我正在复现这篇文章,需要了解一下PixelSNAIL这个序列预测生成的模型。
  • 这篇文章是2017年的,属于近五年的文章,并且来自于Proceedings of Machine Learning Research, PMLR,是一篇顶会,是CCF-A类文章。
  • 出于学习的目的,这里还是翻译一下这篇文章。
  • 自注意力机制:可以获得任何时间信息,但是只能获取少量的信息
  • 因果卷积:可以获得任意数量的信息,但是只能获取的附近上下文的信息,范围有限。
  • 两者完美结合,实现互补。

论文翻译

Abstract

  • 自回归模型在密度估计任务中效果一直都很棒,尤其是针对图片或者音频等高维度数据的生成。自回归模型是将密度估计看作是序列建模任务,也就是使用递归神经网络(RNN)对下一个元素的条件分布进行建模,这个条件分布是基于之前所有的元素的。这类问题中,难点是如何设定RNN,使之能够有效地对长路径依赖进行建模。最常见的方法是使用因果卷积,因果卷积能够更好地访问序列中靠前的数据。受到最近兴起的元强化学习在处理长范围依赖方法的启发,我们引入因果卷积和自我注意力机制相结合的新的生成模型架构。在这篇文章中,我们展示了最终的训练模型,并且展示了最新的对数似然结果,分别是在CIFAR-10和ImageNet两个数据集上进行展示的。

问题

  • 元强化学习?

    • 含义:元强化学习(Meta Reinforcement Learning)是通过在多个任务上的经验,使得智能体能够在新任务上迅速学习和适应。
    • 特点
      • 学习如何学习:该学习方法不仅仅是学习一个特定任务的策略,是学习如何在新任务上快速学习策略
      • 快速适应:智能体能够在看到新任务的少量数据后,能够快速适应
    • 常见算法:MAML(Model-Agnostic Meta-Learning)、Reptile和PEARL(Probabilistic Embeddings for Actor-Critic Reinforcement Learning)
  • 因果卷积网络?

    • 含义:任何时间点的输出仅仅以来于该时间点之前的输入,不依赖于未来的输入,确保了输出和过去输入的因果函数。
    • 常规卷积: 如下图,timeA的这一列的最后的节点,是可以获取的timeB和timeC两列节点的信息,正常的时间顺序应该是timeA > timeB > timeC的顺序,后两者的顺序对于timeA而言,是未来的事件,不应该获得来自未来的信息,所以并不适合序列推列。
      在这里插入图片描述
    • 因果卷积:不同于因果卷积,这里的每一层神经元并不是全连接的,当前节点的数据来源,只能是发生在当前时间点之前的数据。过去可以影响现在,但是未来并不能影响现在
      在这里插入图片描述
    • 具体实现:因果卷积 可以通过适当的填充来实现,对于一维卷积,通过输入序列左侧添加适当数量的零;对于二维卷积,可以使用掩码卷积,根据中心元素进行分割。具体可以看这篇链接
    • 扩展:在我所找到的博客中,他还使用了孔洞卷积,也就是膨胀卷积,来增加卷积的感受野,卷积层能够获得尽可能多的未来数据。
  • 自注意力机制?

    • 含义:自注意力机制允许模型在处理一个序列的时候,对序列中每一个元素分配不同的注意力权重,可以根据每一个元素的上下文来决定他应该给予多少关注
    • 目前这个有点难懂,找机会花时间,找视频好好看看

Introduction

第一部分

  • 在高维度数据上的自回归生成模型能够将联合分布拆解成条件分布的乘积。
    在这里插入图片描述

  • 然后使用一个循环神经网络对特定的某一个条件分布 p ( x i ∣ x 1 : i − 1 ) p(x_i|x_{1:i-1}) p(xix1:i1)进行模拟。这个模拟可以给予额外的全局信息 h h h,如果是生成图片,这个 h h h就是类别标签,然后条件分布 p ( x i ∣ x 1 : i − 1 ) p(x_i|x_{1:i-1}) p(xix1:i1)可以表示为 p ( x i ∣ x 1 : i − 1 , h ) p(x_i|x_{1:i-1},h) p(xix1:i1h)。这种方法效果不错,能够对复杂的依赖关系进行建模。比起GAN,神经自回归模型能够有效地计算似然值,并且训练起来相对容易一些,在某些任务或者是数据集上,神经自回归模型的效果是超过了潜变量模型。

  • 我们设计的核心考虑点就是用来实现循环神经网络(RNN)的网络模型,要能有效调用序列中早期的数据。常见的解决办法如下

    • 传统的RNN,,比如说GRU或者LSTM:这些算法将信息保存在隐藏状态中,然后在训练的过程中,将之传播到下一个状态。他们这种基于时间的线性依赖性,严重限制了他们对于数据中长依赖的获取。
    • 因果卷积:直接对序列数据使用卷积,通过掩码或者转换,使得对于当前数据的预测仅仅会被之前的数据影响。同时,他们能一次性处理更多的数据,也就是说能够接触更多的过去的数据,考虑的更加全面。但是他们的感受野尺寸有限,并且感受野周围的信息衰弱的会更加明显
    • 自我注意力机制:这种方法是将序列转成无序键值对进行保存,同时又可以基于内容进行查询检索。他们的感受野是没有边界的,并且可以实现无衰减的访问时间比较久远的信息。这个刚好弥补了因果卷积的缺点。但是,他们仅仅只能精确访问少量信息,而且需要通过额外的机制,将具体信息和位置信息进行结合。
问题
  • 联合分布如何拆解成条件概率分布

    • 下文是使用条件概率公式进行拆解的,最终的联合分布是若干个条件分布的累乘
      在这里插入图片描述
  • 为什么自回归模型比起GAN之类的模型能够更好地计算似然值

    • 对于自回归模型而言,他的似然函数就是分解之后的条件概率,他的目标就是让最终的条件概率的累乘结果最大。对于每一个数据,我们只需要计算其在给定前面数据点的条件下的概率即可。
    • 对于GAN模型而言, 他并不是直接优化和计算似然函数,而是通过对看过程训练生成器和判别器。
  • 为什么传统RNN无法处理长序列数据

    • 因为传统RNN在处理非常长的序列时,会出现梯度消失和梯度爆炸的问题,影响模型的训练。
    • RNN的特点是在时间步骤上是顺序的,每一个时间步骤必须在前一个时间步骤完成后进行,并行十分困难,并不是擅长处理长序列的数据。

第二部分

  • 因果卷积和自注意力机制彼此的优势和劣势是互补的:因果卷积一次能处理很多的数据,但是仅限于局部时间内的上下文数据。但是自注意力机制能够访问任意时间范围内的上下文,但是只能访问少量的数据。将两者结合,效果最好,同时利用因果卷积的高带宽访问和自注意力机制的长范围访问。整个模型能够访问任何有效的数据,并且没有数量和范围的限制。
  • 具体的合并过程是这样的:卷积是将数据进行聚合,来创建一个上下文,然后在进行注意力查找。这种方法被称为SNAIL,最开始是用在元学习上的,而且效果还不错。主要是因为在元学习中,获取长期时间依赖十分重要,因为智能体的很多决策都是建立在过去的经验上的,SNAIL又刚好解决了这个问题。
  • 在这个文章中,我们也是将相同的想法应用在自回归生成模型上,因为对于自回归生成模型而言,关难点也是获取过去的数据。基于当前生成模型的最先进的技术——PixelCNN,我们提出了新的网络架构,也就是PixelSNAIL,他就是结合SNAIL技术,并应用在CIFAR-10和ImageNet数据集上,取得了最好的生成效果。
问题
  • 元学习是干什么的?
    • 含义:学会学习,目标是设计模型能够快速适应新任务,即使只有少量的数据。元学习是关于如何更好地训练模型,是其能够更快地学习新任务。
    • 特点
      • 快速适应新任务:传统的机器学习模型需要大量的数据训练,才能完成任务。但是元学习只需要少量样本就能快速适应新的数据
      • 训练和测试阶段:不同于传统的机器学习,仅仅只需要学习单个任务。元学习在训练阶段会同时接触多个任务,主要是学习如何快速从一个任务迅速转移到另外一个任务。测试阶段会接触一个新的任务,快速适应对应的知识。
      • 模型结构:有两个部分,一个是学习如何学习的部分,另外一个是针对特定任务进行学习的部分

Model Architecture网络结构

第一部分

  • 在这部分,我们主要是介绍PixelSNAIL的网络结构。主要由两个模块构成,具体见图一,描述如下。
    • 每一个残差模块由若干个卷积层构成,并且都有残差链接。为了实现因果性,对卷积层进行掩码操作,使得当前的像素只能处理左边以及上边的像素。我们使用门激活函数(gate activation function)。在整个模型中,我们每一个残差模块是4个卷积层,每一个卷积层是256个卷积核。
    • 一个注意力模块执行的是单键值对查找。这个模块会将数据映射到较低的维度中,然后在使用低维度的数据生成键值对,借此来减少计算复杂性,并获取输入的重要特征,然后使用soft-max函数来计算 注意力(注意,在这个模块还使用了掩码机制,使得当前的像素仅仅只会关注之前生成的像素)。我们使用的key的维度是16位,value的维度是128位。

在这里插入图片描述

  • 上图的两个模块构成了PixelSNAIL,左边是残差模块,总共是256个滤波器,然后有4个模块了;右边是注意力模块,键的维度是16,然后值的维度是128

问题

  • 门激活函数(gate activation function)

    • 含义:并不是特定的激活函数,在深度学习和神经网络中,用来控制信息流的机制
    • 作用:在处理序列数据时,不是所有的信息都是 同等重要的。门激活函数允许模型有选择性的控制信息的流动,对于捕捉和记忆长期依赖关系十分有用
  • 自注意力机制中的键值对如何生成?如何作用的?

    • 将输入进行线性投影:分别将输入序列应用到三个不同的线性变换中,生成三个矩阵分别是查询Q、键K和值V,计算这三个矩阵分别有对应的权重矩阵
      • Q = X ∗ W Q Q = X * W_Q Q=XWQ
      • K = X ∗ W K K = X * W_K K=XWK
      • V = X ∗ W V V = X * W_V V=XWV
    • 计算注意力分数:这里计算 Q Q Q K K K的权重矩阵点乘来计算注意力分数
    • 应用激活函数:对注意力分数使用softmax函数来计算权重矩阵 W e i g h t Weight Weight
    • 加权求和:使用上面的权重矩阵 W e i g h t Weight Weight和价值矩阵 V V V的点乘,作为最红的输出
    • 效果:使得模型在每一个位置都考虑到整个序列的信息,从而捕捉长距离的依赖关系

第二部分

  • 图2展示了完整的PixelSNAIL的网络结构,他是整合了残差模块和注意力模块。在CIFAR-10的数据集中,每一个残差模块后的第一个卷积层都有一个dropout层,会将一半的数据进行失活,主要是防止模型过拟合,因为数据太少了。在ImageNet中,就没有使用任何的dropout,因为数据集很大,不用担心过拟合。
  • 在两个数据集上,我们使用了Polyak平均法对训练参数进行平均。对于CIFAR-10,使用了0.99995的指数移动平均权重,对于ImageNet,我们使用了0.9997的权重。作为输出分布,我们使用了离散化logistics混合,其中CIFAR-10用了10个混合组件,ImageNet用了32个组件,为了预测子像素的值,我们使用了线性自回归参数化方法。

在这里插入图片描述

问题
  • 为什么要对训练参数进行平均?

    • 参数平均的原因
      • 提升模型的稳定性,参数初始化时,参数的波动会比较大,对参数进行平均,可以减少波动
      • 平滑损失曲线 ,平均过后的参数,损失值变化会更小,曲线更加平滑
      • 提高泛化性能,这部分是通过实验发现的
      • 减少噪声的影响,通过平均的参数,对于噪声的抑制能力会更强
  • 指数移动平均权重是为了什么?

    • 含义:这个简称为EMA,是前一个epoch的指数平均值和当前参数的值的加权和。
      在这里插入图片描述
  • 离散化的logitics混合组件是干什么的?

    • 什么是混合模型:通过组合多个简单的分布来逼近复杂的数据分布
    • logitics混合组件:通过多个简单的logistics分布(逻辑分布)来逼近复杂的分布。
    • 作用
      • 表示多模态分布、逼近复杂分布、更好的似然估计
  • 线性自回归参数化方法是干啥的?

    • 含义:使用线性模型来预测像素值,基于其邻近像素或在某个结构中的其他的像素。

Experiments实验

  • 在表格3中,我们提供了PixelSNAIL在CIFAR-10和ImageNet上的负对数似然结果,我们将PixelSNAIL和其他一些自回归模型进行比较。其他模型包括,PixelRNN(基于LSTM),PixelCNN和PixelCNN++(仅仅使用因果卷积)还有ImageTransformer(仅仅使用了自注意力机制)。PixelSNAIL的效果最好,这表明将这两个结构进行组合,效果确实不错。

  • 表格1,展示了在CIFAR-10和ImageNet两个数据集上的几种不同方法的负对数似然结果,PixelSNIAL的效果是比其他仅仅使用因果卷积或者是自注意力机制的要好。

问题

  • 负对数似然结果(negative log-likehood results)有什么用
    • 含义:评估生成模型性能的常用指标,尤其是针对图像生成模型,越小越好。
    • 计算过程
      • 模型预测:模型对于给定的输入,会预测下一个像素或者下一部分的分布。每一个像素一般都是一个概率值。
      • 获取真实值的概率:概率分布中,真实值的概率
      • 计算对数似然:计算当前像素的对数似然,并且取负数。
      • 计算整个图像的NLL:计算每一个像素的NLL,并进行求和。
      • 平均NLL:对于一个数据集而言,就是计算每一个图片的NLL,然后累加求和,在求平均。

Conclusion结论

  • 我们引入了PixelSNAIL,这是一种自回归生成模型,他将因果卷积和自注意力机制进行结合。我们验证了模型在CIFAR-10和ImageNet上性能,并且将项目公开在github上,链接。
  • 虽然自回归神经网络的似然度很好计算,并且在很多场景下都很有效,但是他有一个明显的缺陷就是生成很慢,主要是每一个像素必须顺序生成。PixelSNAIL的生成速率和其他的采样速率都很慢。所以设计一个模型能够快速采样并且性能有很好的,始终是一个问题。

问题

  • 注意力机制、空间注意力、通道注意力、混合注意力四者有什么区别?

    • 传统注意力机制:通常用于序列数据、例如文本或者时间序列。
    • 空间注意力机制:专门用于图像或者其他的空间数据,允许关注图西那个的某些特征区域。
    • 通道注意力机制:在处理多通道数据时,允许模型关注特定通道的数据
    • 混合注意力机制:通道和空间注意力机制的混合,同时关注通道和空间。
  • 注意力机制的核心

    • 允许模型动态地为其输入分配不同的权重,关注更加重要的部分。

总结

  • 较之于以往常见的PixelCNN,PixelSNAIL就是在PixelCNN的基础上,增加了一个自注意力机制,来弥补因果卷积的只能感知有限上下文的缺点。将这两者进行结合,就可以实现感受野不受影响,并且获取数据量很大的两个特点。使得模型的预测结果更加准确。
  • 通过这个模型,可以学一下具体的自注意力机制是如何实现,不同于之前实现过的空间注意力机制、通道注意力机制以及混合注意力机制。

参考

  • chatGPT -WebBrowser模式,链接
  • 因果卷积神经网络 —— 专为时间序列预测而设计的深度学习网络结构

相关文章:

论文学习——PixelSNAIL:An Improved Autoregressive Geenrative Model

文章目录 引言论文翻译Abstract问题 Introduction第一部分问题 第二部分问题 Model Architecture网络结构第一部分问题第二部分问题 Experiments实验问题 Conclusion结论问题 总结参考 引言 这篇文章,是《PixelSNAIL:An Improved Autoregressive Geenrative Model》…...

mySQL 视图 VIEW

简化版的创建视图 create view 视图名 as select col ...coln from 表create view 视图名(依次别名) as select col ...coln from 表create view 视图名 as select col “别名1”,。。。col "别名n" from 表show tab…...

「UG/NX」Block UI 曲线收集器CurveCollector

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#...

微信小程序:函数节流与函数防抖

目录 问题引入: 定义 解决方案:函数节流 一、案例举例 1.页面展示 2.search.wxml标签展示 3.search.js展示 4.结果展示 二、函数节流解决问题 1.函数 2.实例应用 三、函数防抖解决问题 1.函数 2.原理 3.应用场景 4.应用实例 总结 问题引入…...

Mathematica(42)-计算N个数值的和

比如,我们要用Mathematica求得到下面的式子: 这就需要用到一个函数:Sum 具体地,Sum函数的使用形式如下: 因此,按照公式就可以得到下面的结果: 如果,我们想要将求和号也加进去&#…...

安装和配置 Ansible

安装和配置 Ansible 按照下方所述,在控制节点 control.area12.example.com 上安装和配置 Ansible: 安装所需的软件包 创建名为 /home/curtis/ansible/inventory 的静态清单文件,以满足以下要求: node1 是 dev 主机组的成员 node2 …...

电脑系统重装日记

重装原因 电脑C盘几乎爆炸故重装系统一清二白 此片原因 记录重装过程,强调一些要注意的点,以防日后重装。 重装过程 1.清空电脑文件后重启,电脑冒蓝光,一直蓝屏反复重启,故只能重装系统以解难题。 2.准备一个U盘&…...

通讯协议044——全网独有的OPC HDA知识一之聚合(十二)持续坏值时间

本文简单介绍OPC HDA规范的基本概念,更多通信资源请登录网信智汇(wangxinzhihui.com)。 本节旨在详细说明HDA聚合的要求和性能。其目的是使HDA聚合标准化,以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能&…...

Docker:Windows container和Linux container

点击"Switch to Windows containers"菜单时: 提示 然后 实际上是运行:com.docker.admin.exe start-service...

excel提示更新外部引用文件 这个提示能手动禁用

是的,你可以手动禁用 Excel 中的更新外部引用文件的提示。这些步骤可能因 Excel 版本而有所不同,以下是一般的步骤: 1. **打开 Excel**: 2. **进入“选项”**: - 在 Excel 中,点击顶部菜单中的“文件”…...

2023 最新 小丫软件库app开源源码 PHP后端

上传了源码解压之后,在admin/public/config.php修改后台登录账号和密码 后台地址:域名或者ip/admin 然后自己修改配置即可 后端搭建完成,现在导入iapp源码 导入iapp源码之后,修改mian.iyu载入事件的对接api和url就可以打包了 sss …...

Selenium 测试用例编写

编写Selenium测试用例就是模拟用户在浏览器上的一系列操作,通过脚本来完成自动化测试。 编写测试用例的优势: 开源,免费。 支持多种浏览器 IE,Firefox,Chrome,Safari。 支持多平台 Windows,Li…...

es自定义分词器支持数字字母分词,中文分词器jieba支持添加禁用词和扩展词典

自定义分析器,分词器 PUT http://xxx.xxx.xxx.xxx:9200/test_index/ {"settings": {"analysis": {"analyzer": {"char_test_analyzer": {"tokenizer": "char_test_tokenizer","filter": [&…...

基于libevent的tcp服务器

libevent使用教程_evutil_make_socket_nonblocking_易方达蓝筹的博客-CSDN博客 一、准备 centos7下安装libevent库 yum install libevent yum install -y libevent-devel 二、代码 server.cpp /** You need libevent2 to compile this piece of code Please see: http://li…...

【TypeScript】tsc -v 报错 —— 在此系统上禁止运行脚本

在 VS Code 终端中执行 tsc -v ,报错 —— 在此系统上禁止运行脚本 然后 windows x ,打开终端管理员,出现同样的问题 解决方法: 终端(管理员)执行以下命令: 出现 RemoteSigned 则代表更改成功…...

【C++】STL---list

STL---list 一、list 的介绍二、list 的模拟实现1. list 节点类2. list 迭代器类(1)前置(2)后置(3)前置- -、后置- -(4)! 和 运算符重载(5)* 解引用重载 和 …...

六、分组背包

六、分组背包 题记算法题目代码 题记 一个旅行者有一个最多能装V公斤的背包和有N件物品,它们的重量分别是W[1],W[2],…,W[n],它们的价值分别为C[1],C[2],…,C[n]。这些物品被划分为若干组,每组中的物品互相冲突&#…...

LangChain入门:构建LLM驱动的应用程序的初学者指南

LangChain & DemoGPT 一、介绍 你有没有想过如何使用大型语言模型(LLM)构建强大的应用程序?或者,也许您正在寻找一种简化的方式来开发这些应用程序?那么你来对地方了!本指南将向您介绍LangChain&#x…...

gitlab修改远程仓库地址

目录 背景: 解决: 1.删除本地仓库关联的远程地址,添加新的远程仓库地址 2.直接修改本地仓库关联的远程仓库地址 3.打开.git隐藏文件修改远程仓库地址 4.拉取代码报错(git host key verification failed) 背景: 公司搬家&#…...

VB+SQL自动点歌系统设计与实现

摘 要 随着社会的发展,人类的进步,21世纪人们的生活的水平有所提高,为了满足人们对生活的需要,丰富业余生活,就需要有一些娱乐的设施来弥补这些空缺,所以开发了自动点歌系统。 论文详细论述了系统总体设计思想、数据库设计以及功能模块设计等,给出了自动点歌系统一般流程…...

设计模式之适配器模式(Adapter)的C++实现

1、适配器模式的提出 在软件功能开发中,由于使用环境的改变,之前一些类的旧接口放在新环境的功能模块中不再适用。如何使旧接口能适用于新的环境?适配器可以解决此类问题。适配器模式:通过增加一个适配器类,在适配器接…...

C#系统锁屏事件例子 - 开源研究系列文章

今天有个网友问了个关于操作系统锁屏的问题。 我们知道,操作系统是基于消息和事件处理的,所以我们只要找到该操作系统锁屏和解屏的那个事件,然后在事件里进行处理即可。下面是例子介绍。 1、 项目目录; 下面是项目目录&#xff1a…...

R语言实现免疫浸润分析(2)

原始数据承接免疫浸润分析&#xff08;1&#xff09;&#xff0c;下面展示免疫浸润结果&#xff1a; #直接使用IOBR包内的cell_bar_plot pic<-cell_bar_plot(input quantiseq_immo_de[1:20,], title "quanTiseq Cell Fraction") #使用ggplot2 library(ggplot2)…...

系统架构设计师-信息安全技术(2)

目录 一、安全架构概述 1、信息安全所面临的威胁 二、安全模型 1、安全模型的分类 2、BLP模型 3、Biba 模型 4、Chinese Wall模型 三、信息安全整体架构设计 1、WPDRRC模型 2、各模型的安全防范功能 四、网络安全体系架构设计 1、开放系统互联安全体系结构 2、安全服务与安…...

STM32F4X-GPIO输入功能使用

STM32F4 GPIO输入模式配置 上一节讲GPIO的时候说到了将GPIO设置成输出模式&#xff0c;并通过将GPIO的电平拉高拉低控制LED灯的例程。GPIO除了用作输出功能之外&#xff0c;还可以用作输入功能。最常用的就是检测按键的输入电平。 硬件设计 本章的硬件是基于正点原子的探索者…...

Jenkins-CICD-python/Java包升级与回退

Jenkins- CICD流水线 python/Java代码升级与回退 1、执行思路 1.1、代码升级 jenkins上点击 upgrade和 代码版本号 --${tag} jenkins 推送 代码 和 执行脚本 到目标服务器/opt目录下 执行命令 sh run.sh 代码名称 版本号 upgrade 版本号 来自jenkins的 构建参数中的 标签…...

模糊测试面面观 | 模糊测试工具知多少

自1988年威斯康星大学的Barton Miller首次提出模糊测试这一概念以来&#xff0c;模糊测试领域经历了持续长久发展。模糊测试作为一种软件测试方法&#xff0c;旨在通过向程序输入模糊、随机、异常的数据&#xff0c;探测和发现潜在的漏洞和错误。这种方法备受安全研究人员的青睐…...

esp8266+电压检测模块检测电池电压

该模块5v时输出1v&#xff0c;因esp8266 ADC引脚(A0)支持电压范围是0v-1v&#xff0c;所以该方案仅支持0-5v电压检测 接线&#xff1a; - 接 esp8266GND 可不接 S 接 ADC esp8266 为 A0 VCC 被检测直流电 GND 被检测直流电- #include <Wire.h>const int adcPin A0; // …...

MongoDB增删改查操作

数据库操作&#xff1a; 在MongoDB中&#xff0c;文档集合存在数据库中。 要选择使用的数据库&#xff0c;请在mongo shell程序中发出 use <db> 语句 // 查看有哪些数据库 show dbs;// 如果数据库不存在&#xff0c;则创建并切换到该数据库&#xff0c;存在则直接切换到…...

Python | Package | Python的三种包安装方式(pip/whl/tar.gz)

文章目录 PIP 安装与卸载Source 安装与卸载Whell 安装与卸载 PIP 安装与卸载 pip install xxx pip install xxxversion_numberpip install captcha pip install captcha0.4# XXX/anaconda3/envs/py373/lib/python3.7/site-packages pip uninstall captchaSource 安装与卸载 p…...

1. 微信小程序开发环境搭建

下载 微信的小程序开发需要使用到微信开发者工具&#xff0c;通过https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html可以下载 下载完成后 安装...

Redis五大基本数据类型及其使用场景

文章目录 **一 什么是NoSQL&#xff1f;****二 redis是什么&#xff1f;****三 redis五大基本类型**1 String&#xff08;字符串&#xff09;**应用场景** 2 List&#xff08;列表&#xff09;**应用场景** 3 Set&#xff08;集合&#xff09;4 sorted set&#xff08;有序集合…...

优于立方复杂度的 Rust 中矩阵乘法

优于立方复杂度的 Rust 中矩阵乘法 迈克克维特 跟随 发表于 更好的编程 6 分钟阅读 7月 <> 143 中途&#xff1a;三次矩阵乘法 一、说明 几年前&#xff0c;我在 C 年编写了 Strassen 矩阵乘法算法的实现&#xff0c;最近在 Rust 中重新实现了它&#xff0c;因为我继续…...

CentOS gcc介绍及快速升级

1.gcc介绍 GCC&#xff08;GNU Compiler Collection&#xff09;是一个开源的编译器套件&#xff0c;由 GNU(GNUs Not Unix!的递归缩写) 项目开发和维护。它是一个功能强大且广泛使用的编译器&#xff0c;支持多种编程语言&#xff0c;包括 C、C、Objective-C、Fortran、Ada 和…...

IO多路复用中select的TCP服务器模型和poll服务模型

select的TCP服务器模型 服务器端 #include <head.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <unistd.h> #include <sys/select.h> #include <sys/time.h>#define PORT 6666 //1024~4…...

AI工程师招募;60+开发者AI工具清单;如何用AI工具读懂插件源码;开发者出海解读;斯坦福LLM课程 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 一则AI工程师招募信息&#xff1a;新领域需要新技能 Vision Flow (目的涌现) 是一家基于 AGI 原生技术的创业公司&#xff0c;是全球探…...

Mysql 使用JSON_SEARCH函数 判断多表查询时,某个拼接字段是否包含另外一个字段

场景 两个表管理查询 关联字段为A表id, B表的ids A表id是正常的整数, B的ids是id拼接成的字符类型, 格式是111,222,333这样的. A: B: id ids11 11,22,3322 33,44,5533 …...

C++头文件

C头文件 一般头文件特殊头文件windows.hbits/stdc.h 一般头文件 C头文件是一种包含预定义函数、类和变量声明的文件。它们通常用于在源代码文件中引入外部库或模块的功能。 头文件的作用是提供程序所需的声明信息&#xff0c;以便在源代码文件中使用这些声明。当你在源代码文…...

无脑入门pytorch系列(四)—— scatter_

本系列教程适用于没有任何pytorch的同学&#xff08;简单的python语法还是要的&#xff09;&#xff0c;从代码的表层出发挖掘代码的深层含义&#xff0c;理解具体的意思和内涵。pytorch的很多函数看着非常简单&#xff0c;但是其中包含了很多内容&#xff0c;不了解其中的意思…...

【Spring源码】Spring扩展点及顺序

Spring扩展点及顺序 01-调用BeanFactoryPostProcessor的构造器 02-调用了BeanFactoryPostProcessor的postProcessBeanFactory 03-调用了BeanPostProcessor构造器 04-调用InstantiationAwareBeanPostProcessor构造方法 05-调用了InstantiationAwareBeanPostProcessor接口的Befo…...

广州华锐互动:3D数字孪生开发编辑器助力企业高效开发数字孪生应用

3D数字孪生开发编辑器是一种新兴的技术&#xff0c;它可以帮助企业更好地管理和维护其物联网设备。这些工具可以帮助企业实现对设备的实时监控、故障排除和优化&#xff0c;从而提高生产效率和降低成本。 数字孪生系统是一种将物理世界与数字世界相结合的技术&#xff0c;它可以…...

【脚踢数据结构】图(纯享版)

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;软件配置等领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff01;送给自己和读者的…...

[leetcode] 707 设计链表

707. 设L计链表 中等 902 相关企业 你可以选择使用单链表或者双链表&#xff0c;设计并实现自己的链表。 单链表中的节点应该具备两个属性&#xff1a;val 和 next 。val 是当前节点的值&#xff0c;next 是指向下一个节点的指针/引用。 如果是双向链表&#xff0c;则还需…...

JIRA:项目管理的秘密武器

引言 在当今动态且快速变化的商业环境中&#xff0c;项目管理已经成为任何组织成功的关键因素。能够有效地管理项目&#xff0c;保证项目在设定的时间和预算内按照预期的质量完成&#xff0c;是每个项目经理的目标。为了实现这个目标&#xff0c;项目经理需要依赖强大的工具&a…...

ARM 作业1

一、思维导图 二、 1. 2. .text 文本段 .globl _start 声明_start:mov r0,#0mov r1,#0fun:cmp r1,#100bhi stopadd r0,r0,r1add r1,r1,#1b fun stop:b stop .end...

【解析postman工具的使用---基础篇】

postman前端请求详解 主界面1.常见类型的接口请求1.1 查询参数的接口请求1.1.1 什么是查询参数?1.1.2 postman如何请求 1.2 ❤表单类型的接口请求1.2.1 复习下http请求1.2.2❤ 什么是表单 1.3 上传文件的表单请求1.4❤ json类型的接口请求 2. 响应接口数据分析2.1 postman的响…...

Elasticsearch:如何在 Ubuntu 上安装多个节点的 Elasticsearch 集群 - 8.x

Elasticsearch 是一个强大且可扩展的搜索和分析引擎&#xff0c;可用于索引和搜索大量数据。 Elasticsearch 通常用于集群环境中&#xff0c;以提高性能、提供高可用性并实现数据冗余。 在本文中&#xff0c;我们将讨论如何在 Ubuntu 20.04 上安装和配置具有多节点集群的 Elast…...

记录win 7旗舰版 “VMware Alias Manager and Ticket Service‘(VGAuhService)启动失败。

记录win 7旗舰版 "VMware Alias Manager and Ticket Service’(VGAuhService)启动失败。 描述如图 https://learn.microsoft.com/zh-CN/cpp/windows/latest-supported-vc-redist?viewmsvc-140#visual-studio-2015-2017-2019-and-2022 安装对应版本的VC 库就可以解决问…...

git 开发环境配置

系统&#xff1a;Mac OS 1、下载git&#xff0c;官网已经推荐使用命令下载。 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh) 2、验证git是否安装成功 git --version 3、配置本地git全局变量 git config --global user.n…...

Tableau画图

目录 蝴蝶图 四象图 排序图 盒型图/散点图 圆环图 火柴图 直方图 瀑布图 地理图 面积图 树地图 面积图 条形图 词云图 双轴图 填充地图 tableau2023.2 须知 蝴蝶图 拉好数据之后 创建新字段正负销售额&#xff0c;并拖入第一个颜色标记卡 四象图 智能推荐 散…...