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

【深度学习 | LSTM】解开LSTM的秘密:门控机制如何控制信息流

在这里插入图片描述

🤵‍♂️ 个人主页: @AI_magician
📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。
👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍
🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)

在这里插入图片描述

【深度学习 | LSTM】解开LSTM的秘密:门控机制如何控制信息流
作者: 计算机魔术师
版本: 1.0 ( 2023.8.27 )

摘要: 本系列旨在普及那些深度学习路上必经的核心概念,文章内容都是博主用心学习收集所写,欢迎大家三联支持!本系列会一直更新,核心概念系列会一直更新!欢迎大家订阅

该文章收录专栏
[✨— 《深入解析机器学习:从原理到应用的全面指南》 —✨]

LSTM最全详解,

  • LSTM
      • 原理详解(每个神经元)
        • a. 遗忘门:Forget Gate
        • b. 输入门:Input Gate
        • c. Cell State
        • d. 输出门:Output Gate
      • 参数详解
      • 参数计算
      • 实际场景

LSTM

原理详解(每个神经元)

LSTM(Long Short-Term Memory)是一种常用于处理序列数据的循环神经网络模型。LSTM的核心思想是在传递信息的过程中,通过门的控制来选择性地遗忘或更新信息。LSTM中主要包含三种门:输入门(input gate)、输出门(output gate)和遗忘门(forget gate),以及一个记忆单元(memory cell)。

在LSTM层中,有三个门控单元,即输入门、遗忘门和输出门。这些门控单元在每个时间步上控制着LSTM单元如何处理输入和记忆。在每个时间步上,LSTM单元从输入、前一个时间步的输出和前一个时间步的记忆中计算出当前时间步的输出和记忆。

在LSTM的每个时间步中,输入 x t x_t xt和前一时刻的隐状态 h t − 1 h_{t-1} ht1被馈送给门控制器,然后门控制器根据当前的输入 x t x_t xt和前一时刻的隐状态 h t − 1 h_{t-1} ht1计算出三种门的权重,然后将这些权重作用于前一时刻的记忆单元 c t − 1 c_{t-1} ct1。具体来说,门控制器计算出三个向量:**输入门的开启程度 i t i_t it、遗忘门的开启程度 f t f_t ft和输出门的开启程度 o t o_t ot,这三个向量的元素值均在[0,1]**之间。

然后,使用这些门的权重对前一时刻的记忆单元 c t − 1 c_{t-1} ct1进行更新,计算出当前时刻的记忆单元 c t c_t ct,并将它和当前时刻的输入 x t x_t xt作为LSTM的输出 y t y_t yt。最后,将当前时刻的记忆单元 c t c_t ct和隐状态 h t h_t ht一起作为下一时刻的输入,继续进行LSTM的计算。

在这里插入图片描述

如果你对LSTM以及其与反向传播算法之间的详细联系感兴趣,我建议你参考以下资源:

  1. “Understanding LSTM Networks” by Christopher Olah: https://colah.github.io/posts/2015-08-Understanding-LSTMs/ 强烈推荐!!!
  2. TensorFlow官方教程:Sequence models and long-short term memory network (https://www.tensorflow.org/tutorials/text/text_classification_rnn)
  3. PyTorch官方文档:nn.LSTM (https://pytorch.org/docs/stable/generated/torch.nn.LSTM.html)
  4. 详细讲解RNN,LSTM,GRU https://towardsdatascience.com/a-brief-introduction-to-recurrent-neural-networks-638f64a61ff4

以上资源将为你提供更多关于LSTM及其与反向传播算法结合使用的详细解释、示例代码和进一步阅读材料。

LSTM 的核心概念在于细胞状态以及“门”结构。细胞状态相当于信息传输的路径,让信息能在序列连中传递下去。你可以将其看作网络的“记忆”,记忆门一个控制信号控制门是否应该保留该信息,在实现上通常是乘1或乘0来选择保留或忘记。理论上讲,细胞状态能够将序列处理过程中的相关信息一直传递下去。因此,即使是较早时间步长的信息也能携带到较后时间步长的细胞中来,这克服了短时记忆的影响。信息的添加和移除我们通过“门”结构来实现,“门”结构在训练过程中会去学习该保存或遗忘哪些信息。

LSTM的参数包括输入到状态的权重 W x i , W h i , b i W_{xi},W_{hi},b_i Wxi,Whi,bi,输入到遗忘门的权重 W x f , W h f , b f W_{xf},W_{hf},b_f Wxf,Whf,bf,输入到输出门的权重 W x o , W h o , b o W_{xo},W_{ho},b_o Wxo,Who,bo,以及输入到记忆单元的权重 W x c , W h c , b c W_{xc},W_{hc},b_c Wxc,Whc,bc,其中 W W W表示权重矩阵, b b b表示偏置向量。在实际应用中,LSTM模型的参数通常需要通过训练来获得,以最小化预测误差或最大化目标函数。

a. 遗忘门:Forget Gate

遗忘门的功能是决定应丢弃或保留哪些信息。来自前一个隐藏状态的信息和当前输入的信息同时传递到 sigmoid 函数中去,输出值介于 0 和 1 之间,越接近 0 意味着越应该丢弃,越接近 1 意味着越应该保留。

遗忘门的计算公式

b. 输入门:Input Gate

输入门用于更新细胞状态。首先将前一层隐藏状态的信息和当前输入的信息传递到 sigmoid 函数中去。将值调整到 0~1 之间来决定要更新哪些信息。0 表示不重要,1 表示重要。其次还要将前一层隐藏状态的信息和当前输入的信息传递到 tanh 函数中去,创造一个新的侯选值向量。最后将 sigmoid 的输出值与 tanh 的输出值相乘,sigmoid 的输出值将决定 tanh 的输出值中哪些信息是重要且需要保留下来

使用tanh作为LSTM输入层的激活函数,一定程度上可以避免梯度消失和梯度爆炸的问题。

在LSTM中,如果权重值较大或者较小,那么在反向传播时,梯度值会非常大或者非常小,导致梯度爆炸或者消失的情况。而tanh函数的导数范围在[-1, 1]之间,可以抑制梯度的放大和缩小,从而避免了梯度爆炸和消失的问题(RNN遇到的问题)。此外,tanh函数在输入为0附近的时候输出接近于线性,使得网络更容易学习到线性相关的特征。另外,tanh 函数具有对称性,在处理序列数据时能够更好地捕捉序列中的长期依赖关系。

因此,使用tanh作为LSTM输入层的激活函数是比较常见的做法。

c. Cell State

首先前一层的细胞状态与遗忘向量逐点相乘。如果它乘以接近 0 的值,意味着在新的细胞状态中,这些信息是需要丢弃掉的。然后再将该值与输入门的输出值逐点相加,将神经网络发现的新信息更新到细胞状态中去。至此,就得到了更新后的细胞状态。

d. 输出门:Output Gate

输出门用来确定下一个隐藏状态的值,隐藏状态包含了先前输入的信息。首先,我们将前一个隐藏状态和当前输入传递到 sigmoid 函数中,然后将新得到的细胞状态传递给 tanh 函数。最后将 tanh 的输出与 sigmoid 的输出相乘,以确定隐藏状态应携带的信息。再将隐藏状态作为当前细胞的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。

在LSTM层中,每个时间步上的计算涉及到许多参数,包括输入、遗忘和输出门的权重,以及当前时间步和前一个时间步的输出和记忆之间的权重。这些参数在模型训练过程中通过反向传播进行学习,以最小化模型在训练数据上的损失函数。总之,LSTM通过门的控制,使得信息在传递过程中可以有选择地被遗忘或更新,从而更好地捕捉长序列之间的依赖关系,广泛应用于语音识别、自然语言处理等领域。

LSTM的输出可以是它的最终状态(最后一个时间步的隐藏状态)或者是所有时间步的隐藏状态序列。通常,LSTM的最终状态可以被看作是输入序列的一种编码,可以被送入其他层进行下一步处理。如果需要使用LSTM的中间状态,可以将return_sequences参数设置为True,这样LSTM层将返回所有时间步的隐藏状态序列,而不是仅仅最终状态。

需要注意的是,LSTM层在处理长序列时容易出现梯度消失或爆炸的问题。为了解决这个问题,通常会使用一些技巧,比如截断反向传播、梯度裁剪、残差连接等

参数详解

layers.LSTM 是一个带有内部状态的循环神经网络层,其中包含了多个可训练的参数。具体地,LSTM层的输入是一个形状为(batch_size, timesteps, input_dim)的三维张量,其中batch_size表示输入数据的批次大小,timesteps表示序列数据的时间步数,input_dim表示每个时间步的输入特征数。LSTM层的输出是一个形状为**(batch_size, timesteps, units)的三维张量,其中units表示LSTM层的输出特征数**。以下是各个参数的详细说明:

  • units:LSTM 层中的单元数,即 LSTM 层输出的维度。
  • activation:激活函数,用于计算 LSTM 层的输出和激活门。
  • recurrent_activation:循环激活函数,用于计算 LSTM 层的循环状态。
  • use_bias:是否使用偏置向量。
  • kernel_initializer:用于初始化 LSTM 层的权重矩阵的初始化器。
  • recurrent_initializer:用于初始化 LSTM 层的循环权重矩阵的初始化器。
  • bias_initializer:用于初始化 LSTM 层的偏置向量的初始化器。
  • unit_forget_bias:控制 LSTM 单元的偏置初始化,如果为 True,则将遗忘门的偏置设置为 1,否则设置为 0。
  • kernel_regularizer:LSTM 层权重的正则化方法。
  • recurrent_regularizer:LSTM 层循环权重的正则化方法。
  • bias_regularizer:LSTM 层偏置的正则化方法。
  • activity_regularizer:LSTM 层输出的正则化方法。
  • dropout:LSTM 层输出上的 Dropout 比率。
  • recurrent_dropout:LSTM 层循环状态上的 Dropout 比率。
  • return_sequences: 可以控制LSTM的输出形式。如果设置为True,则输出每个时间步的LSTM的输出,如果设置为False,则只输出最后一个时间步的LSTM的输出。因此,return_sequences的默认值为False,如果需要输出每个时间步的LSTM的输出,则需要将其设置为True。

这些参数的不同设置将直接影响到 LSTM 层的输出和学习能力。需要根据具体的应用场景和数据特点进行选择和调整。

tf.keras.layers.LSTM(
units,
activation=“tanh”,
recurrent_activation=“sigmoid”, #用于重复步骤的激活功能
use_bias=True, #是否图层使用偏置向量
kernel_initializer=“glorot_uniform”, #kernel权重矩阵的 初始化程序,用于输入的线性转换
recurrent_initializer=“orthogonal”, #权重矩阵的 初始化程序,用于递归状态的线性转换
bias_initializer=“zeros”, #偏差向量的初始化程序
unit_forget_bias=True, #则在初始化时将1加到遗忘门的偏置上
kernel_regularizer=None, #正则化函数应用于kernel权重矩阵
recurrent_regularizer=None, #正则化函数应用于 权重矩阵
bias_regularizer=None, #正则化函数应用于偏差向量
activity_regularizer=None, #正则化函数应用于图层的输出(其“激活”)
kernel_constraint=None,#约束函数应用于kernel权重矩阵
recurrent_constraint=None,#约束函数应用于 权重矩阵
bias_constraint=None,#约束函数应用于偏差向量
dropout=0.0,#要进行线性转换的输入单位的分数
recurrent_dropout=0.0,#为递归状态的线性转换而下降的单位小数
return_sequences=False,#是否返回最后一个输出。在输出序列或完整序列中
return_state=False,#除输出外,是否返回最后一个状态
go_backwards=False,#如果为True,则向后处理输入序列并返回反向的序列
stateful=False,#如果为True,则批次中索引i的每个样本的最后状态将用作下一个批次中索引i的样本的初始状态。
time_major=False,
unroll=False,#如果为True,则将展开网络,否则将使用符号循环。展开可以加快RNN的速度,尽管它通常会占用更多的内存。展开仅适用于短序列。
)

参数计算

对于一个LSTM(长短期记忆)模型,参数的计算涉及输入维度、隐藏神经元数量和输出维度。在给定输入维度为(64,32)和LSTM神经元数量为32的情况下,我们可以计算出以下参数:

  1. 输入维度:(64,32)
    这表示每个时间步长(sequence step)的输入特征维度为32,序列长度为64。

  2. 隐藏神经元数量:32
    这是指LSTM层中的隐藏神经元数量。每个时间步长都有32个隐藏神经元。

  3. 输入门参数:

    • 权重矩阵:形状为(32,32 + 32)的矩阵。其中32是上一时间步的隐藏状态大小,另外32是当前时间步的输入维度。
    • 偏置向量:形状为(32,)的向量。
  4. 遗忘门参数:

    • 权重矩阵:形状为(32,32 + 32)的矩阵。
    • 偏置向量:形状为(32,)的向量。
  5. 输出门参数:

    • 权重矩阵:形状为(32,32 + 32)的矩阵。
    • 偏置向量:形状为(32,)的向量。
  6. 单元状态参数:

    • 权重矩阵:形状为(32,32 + 32)的矩阵。
    • 偏置向量:形状为(32,)的向量。
  7. 输出参数:

    • 权重矩阵:形状为(32,32)的矩阵。将隐藏状态映射到最终的输出维度。
    • 偏置向量:形状为(32,)的向量。

因此,总共的参数数量可以通过计算上述所有矩阵和向量中的元素总数来确定。

实际场景

当使用LSTM(长短期记忆)神经网络进行时间序列预测时,可以根据输入和输出的方式将其分为四种类型:单变量单步预测、单变量多步预测、多变量单步预测和多变量多步预测。

  1. 单变量单步预测:

    • 输入:只包含单个时间序列特征的历史数据。
    • 输出:预测下一个时间步的单个时间序列值。
    • 例如,给定过去几天的某股票的收盘价,使用LSTM进行单变量单步预测将预测未来一天的收盘价。
  2. 单变量多步预测:

    • 输入:只包含单个时间序列特征的历史数据。
    • 输出:预测接下来的多个时间步的单个时间序列值。
    • 例如,给定过去几天的某股票的收盘价,使用LSTM进行单变量多步预测将预测未来三天的收盘价。
  3. 多变量单步预测:

    • 输入:包含多个时间序列特征的历史数据。
    • 输出:预测下一个时间步的一个或多个时间序列值。
    • 例如,给定过去几天的某股票的收盘价、交易量和市值等特征,使用LSTM进行多变量单步预测可以预测未来一天的收盘价。
  4. 多变量多步预测:

    • 输入:包含多个时间序列特征的历史数据。
    • 输出:预测接下来的多个时间步的一个或多个时间序列值。
    • 例如,给定过去几天的某股票的收盘价、交易量和市值等特征,使用LSTM进行多变量多步预测将预测未来三天的收盘价。

这些不同类型的时间序列预测任务在输入和输出的维度上略有差异,但都可以通过适当配置LSTM模型来实现。具体的模型架构和训练方法可能会因任务类型和数据特点而有所不同。

在这里插入图片描述

						  🤞到这里,如果还有什么疑问🤞🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳

相关文章:

【深度学习 | LSTM】解开LSTM的秘密:门控机制如何控制信息流

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…...

解决npm install遇到的问题:Error while executing:

目录 一、遇到问题 二、解决办法 方法一 方法二 方法三 方法四 一、遇到问题 npm ERR! Error while executing: npm ERR! D:\IT_base\git\Git\cmd\git.EXE ls-remote -h -t ssh://gitgithub.com/sohee-lee7/Squire.git npm ERR! npm ERR! fatal: unable to access ht…...

常见的内网穿透工具有 ngrok/ localtunnel/ frp

1.内网穿透工具的工作原理 内网穿透工具的工作原理是通过在本地网络和公共网络之间建立一个通道,将公网流量转发到本地网络中的服务。这样,在没有公网 IP 或无法直接访问的情况下,用户可以通过公网访问本地网络中的服务。 2. 常见的内网穿透…...

dvwa命令执行漏洞分析

dvwa靶场命令执⾏漏洞 high难度的源码: $target trim($_REQUEST[ ‘ip’ ]);是一个接收id值的变量 array_keys()函数功能是返回包含原数组中所有键名的一个新数组。 str_replace() 函数如下,把字符串 “Hello world!” 中的字符 “world” 替换为 “S…...

今年嵌入式行情怎么样?

今年嵌入式行情怎么样? 嵌入式技术今年可以说是IT领域中最炙手可热的之一。随着中年危机和内卷问题的出现,越来越多的互联网从业者将目光投向了嵌入式领域。国内的嵌入式市场一直受终端需求变化的影响而波动,但随着国内产业自主化的发展趋势…...

Unity WebGL 编译 报错: emcc2: error: ‘*‘ failed: [WinError 2] ϵͳ�Ҳ���ָ�����ļ���解决办法

文章目录 错误日志可能的原因及解决办法:导出路径不能有中文系统名(win)含有中文, 修改环境变量Temp和Tmp, 如下图:真正的原因: 杀毒软件删除了部分wasm相关文件,如: 错误日志 Building Library\Bee\artifacts\WebGL\build\debug_WebGL_wasm\build.js failed with output: emc…...

三维模型3DTile格式轻量化压缩处理的数据质量提升方法分析

三维模型3DTile格式轻量化压缩处理的数据质量提升方法分析 在处理三维模型3DTile格式的轻量化压缩时,如何在减少数据量的同时,保证或提升数据质量是一大挑战。以下为一些提升数据质量的方法分析: 改进几何简化算法:在进行几何简化…...

Pycharm2022 pycharm64.exe.Vmoptions

Windows Pycharm pycharm64.exe.Vmoptions文件的真正路径 C:\Program Files\JetBrains\PyCharm Community Edition 2022.1.4\bin\pycharm64.exe.vmoptions 在其他路径下修改vmoptions是无效的!!! 文件内容 -Xms128m -Xmx750m -XX:Reserve…...

sql注入之高权限注入和文件读写

死在山野的风里,活在自由的梦里 sql注入之高权限注入和文件读写 高权限注入1.多个网站共享mysql服务器2.MySQL 权限介绍3.注入流程查询所有数据库名称查询表名对应的字段名查询数据 文件读写1.文件读写注入的原理2.文件读写注入的条件3.读取文件4.写入文件 高权限注…...

Java 面经

本文为Java面经,其中讲述的是在面试过程中回答得不好的地方,在这里补充,以便为后面的面试积累经验 哈罗单车 一面 Q:公司的MySQL数据库,事务隔离级别是什么? A:读已提交(RC&…...

无涯教程-JavaScript - ROUNDUP函数

描述 ROUNDUP函数将数字四舍五入,而不是0(零)。 ROUNDUP是Excel四舍五入函数之一。 语法 ROUNDUP (number, num_digits)争论 Argument描述Required/OptionalNumberAny real number that you want rounded up.RequiredNum_digitsThe number of digits to which you want to …...

【Linux旅行记】探究操作系统是如何进行管理的!

文章目录 什么是操作系统?操作系统概念操作系统的目的底层硬件驱动程序操作系统理解系统调用接口 操作系统是如何进行管理的?什么是管理?操作系统是如何管理硬件信息呢? 🍀小结🍀 🎉博客主页&am…...

【Linux C小技巧】零长度数组的使用

本期主题: 讲清Linux C的零长度数组使用,内容包括: 零长度数组是什么原理为什么要使用零长度数组与指针的差异 往期链接: 数据结构系列——先进先出队列queue数据结构系列——栈 stackLinux内核链表 目录 0.前言1.零长度数组原理…...

github 网页显示不全?

问题 解决 1、检查网页,打开 network,重新刷新 github 网页 2、查看无法加载的资源(如 css 文件) 3、查看域名地址 https://tool.chinaz.com/dns/,github.githubassets.com(检查网页元素,点击无…...

寄存器介绍

目录 寄存器的概念 寄存器工作原理 寄存器的状态 查看寄存器信息 寄存器复位 大空间寄存器复位 寄存器的概念 寄存器是计算机中一种临时存储数据的硬件设备,通常是高速缓存的一部分,用于存储、读取和操作计算机内部的数据。它们是计算机中最快的存…...

基于CNN-LSTM的时序预测MATLAB实战

一、算法原理 1.1 CNN原理 卷积神经网络具有局部连接、权值共享和空间相关等特性。卷积神经网络结构包含卷积层、激活层和池化层。 (a)二维卷积层将滑动卷积滤波器应用于输入。该层通过沿输入垂直和水平方向 移动滤波器对输入进行卷积,并计…...

MySQL高可用九种方案

有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址[1] 参考视频[2] MMM 方案(单主) MySQL 高可用方案之 MMM(Multi-Master Replication Manager&#x…...

react 通过ref 获取对应 dom 的位置信息

需求: 在点击某个dom 元素的时候滚动条要同步滚动 进程: 获取ref 打印,打印出来是一个dom 元素,看不到有什么方法查找 dom 属性信息找到了两个参数,offsetLeft:返回元素的水平偏移位置。 offsetTop&…...

SpringSecurity学习 - 认证和授权

一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro的上手更加的简单。 一般Web应用的需要进行认证和授权。 认证:验证当前访问系统的是不是本系统的用户,并且要…...

JDK jps命令复习

之前写过jdk命令工具的博文,下面复习jps命令; jps 是 Java Process Status Tool 的简称,它的作用是为了列出所有正在运行中的 Java 虚拟机进程和相关信息; jps 命令参数 -q 只输出进程 ID,省略主类的名称 -m 输出虚拟机进程启动时传递…...

Android 13.0 屏蔽Launcher3桌面app图标的长按功能

1.概述 在13.0的产品定制化开发中,系统默认的Launcher3在workspace 第二屏通常都会显示app列表 点击进入app 列表页,长按app的icon图标会弹出 应用信息 弹窗 等信息,而产品的开发需要,不需要弹出这些信息,所以要求去掉app的icon图标的长按功能 2.屏蔽Launcher3桌面app图…...

软考和PMP哪个含金量更高?

软考中,能和pmp一起来比较的是软考高项,软考高级信息系统项目管理师,和PMP的共同点,基本来说都是项目管理类的证书。本质也都是适用于项目经理岗位的证书,软考高项中大部分考试内容是PMPIT技术两部分,其中项…...

第一章:最新版零基础学习 PYTHON 教程(第三节 - 下载并安装Python最新版本)

在这里,我们将讨论如何获得与在 Windows/Linux/mac OS 上安装 Python 相关的所有问题的答案。Python由Guido van Rossum于20世纪90年代初开发,最新版本为3.11,我们可以简称为Python3。 如何下载并安装Python? 要了解如何安装 P…...

Spring 中三种 BeanName 生成器!

无论我们是通过 XML 文件,还是 Java 代码,亦或是包扫描的方式去注册 Bean,都可以不设置 BeanName,而 Spring 均会为之提供默认的 beanName,今天我们就来看看 Spring 中三种处理不同情况的 beanName 生成器。 1. BeanN…...

Go基础-文件、字符

文件创建 导入“os”包,创建文件,读写文件的函数都在改包。 指定创建的文件存放路径以及文件名。 执行Create( )函数,进行文件创建。 关闭文件。 package mainimport ("fmt""os" )func main() {//创建文件,…...

启动YOLO进行图片物体识别

查看官方文档YOLO: Real-Time Object Detection 这些是一些模型的对比,显示了YOLO的优势,继续往下面看 CoCoData set 是一个数据库,用来训练模型,这里面有丰富的物体检测,分割数据集,图像经过了精确的segm…...

BMS电池管理系统的蓝牙芯片 国产高性能 低功耗蓝牙Soc芯片PHY6222

电池管理系统是对电池进行监控与控制的系统,将采集的电池信息实时反馈给用户,同时根据采集的信息调节参数,充分发挥电池的性能。但是,前技术中,在管理多个电池时,需要人员现场调试与设置,导致其…...

肖sir__mysql之三表__008

mysql之三表 create table student( stu_no int, stu_name varchar(10), sex char(1), age int(3), edit varchar(20) ) DEFAULT charsetutf8; insert into student values (1,‘wang’,‘男’,21,‘hello’), (2,‘小明’,‘女’,22,‘haha2’), (3,‘hu’,‘女’,23,‘haha3…...

【Linux】常用工具(上)

Linux 常用工具 一、Linux 软件包管理器 yum1. 软件包2. 查看软件包3. 安装/卸载软件4. yum 其他指令的功能 二、Linux 编辑器 - vim 使用1. vim 的基本概念2. vim 的基本操作(1)光标移动(命令模式)(2)光标…...

【kafka】可视化工具KAFKA EAGLE安装分享

目录 准备: 开始: 1.解压 2.环境变量配置 3.生效环境变量配置文件 3.修改配置文件 1.修改zookeeper集群信息 2.修改mysql配置信息 4.启动 5.异常排查 6.页面 创作不易,你的动力是我创作的动力,如果有帮助请关注我&…...

企业做网站 里面都写什么/怎么做表格

目录​​​​​​​ 漏洞背景 漏洞影响版本 漏洞复现 漏洞利用 漏洞修复 漏洞背景 2020年09月08日微软发布漏洞通告:CVE-2020-16875 | Microsoft Exchange Server 远程执行代码漏洞 由于对cmdlet参数的验证不正确,Microsoft Exchange服务器中存在一个远程执行代码漏洞…...

wordpress多网站整合在一个后台/广州seo顾问

c中允许在结构体当中定义函数&#xff0c;它的用法和类的用法很像&#xff0c;不过与类有一个区别在于&#xff0c;struct中定义的函数和变量都是默认为public的&#xff0c;但class中的则是默认为private 如&#xff1a; #include<iostream> #include<string> s…...

2008如何添加iis做网站/快速网站排名提升

lua中没有文件拷贝的函数&#xff0c;但是有简单的文件读写函数。 以二进制方式读取源文件的全部内容&#xff0c;然后再全部写到目标文件中&#xff0c;就完成了文件的拷贝 1.lua function copyFunc(destFilePath, sourceFilePath)local sourceFile, errorString io.open(so…...

网站建设挣钱吗/潍坊网站建设优化

0 序言泰勒公式&#xff0c;本质上是一种函数的近似&#xff0c;强大之处就在于可以将不同类型的函数&#xff0c;统一用多项式求和的形式进行替换&#xff0c;从而变成多项式的运算。本篇主要是标出常见的几个泰勒展开式、高阶无穷小的计算规则、泰勒公式使用时应该展开到第几…...

wordpress的搭建环境/百度广告运营

常规的这两个校验工具的用法,可以阅读之前的博文,链接如下: @Valid 和@Validated的区别 那么如果大家看完了基础用法,就可以继续深入学习了,本篇博文主要对这个两个注解的用法进行自定义,实现扩展 废话不多说,上正菜…… 案例一 /*** 大版本信息表** @author fangh*…...

沧州网站设计哪家好/做营销策划的公司

1.什么是HttpClient Http 是Hyper-Text Transfer Protocol简写&#xff0c;迄今为止互联网应用最广泛的协议。网络服务、互联网应用、网络计算需求的增长&#xff0c;持续推动http协议应用范围不断扩展。 java.net包提供http方式访问资源的最基本功能&#xff0c;httpClient在其…...