【深度学习入门】深度学习基础概念与原理

news2024/11/27 10:36:23

*(本篇文章旨在帮助新手了解深度学习的基础概念和原理,不深入讨论算法及核心公式)

目录

一、深度学习概述

1、什么是深度学习?

2、深度学习与传统机器学习的区别

3、深度学习的应用领域

二、深度学习基本原理

1、神经网络的基本结构

(1)什么是神经网络?

(2)神经网络基本结构

2、激活函数的作用和选择

 (1)什么是激活函数?

 (2)激活函数的作用与选择

3、损失函数的定义和选择

(1)什么是损失函数

(2)损失函数的选择

4、反向传播算法的原理和应用

三、深度学习常用算法和模型

a. 卷积神经网络(CNN)

CNN的原理和应用

CNN的常用层结构和参数设置

b. 循环神经网络(RNN)

RNN的原理和应用

RNN的常用变体和参数设置

c. 生成对抗网络(GAN)

GAN的原理和应用

GAN的生成器和判别器的工作原理

d. 其他常用的深度学习模型和算法

四、深度学习实践操作

1、安装和配置深度学习工具

2、使用深度学习框架实现入门实验:PR-曲线、线性回归、卷积神经网络、GAN生成式对抗神经网络


一、深度学习概述

1、什么是深度学习?

        深度学习是机器学习中的一种基于人工神经网络的机器学习方法,其关键在于通过多层神经网络对输入数据进行逐深度学习是机器学习中的一种基于人工神经网络的机器学习方法,其关键在于通过多层神经网络对输入数据进行逐层抽象和表示学习,从而实现对复杂数据结构和非线性关系的建模。深度学习模型通常包含多个隐藏层,每个隐藏层都有许多神经元。这些神经元通过权重连接,模拟了生物神经元之间的信号传递过程。

        深度学习的目标是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。

2、深度学习与传统机器学习的区别

        深度学习和传统机器学习都是机器学习领域的重要分支,但它们在方法和应用上存在明显的区别与独特的优势。以下是它们之间的主要区别:

1. 特征提取与学习:
           - 传统机器学习:通常依赖于特征工程 (feature engineering),这意味着专家需要人为地对数据进行提炼和清洗,选择或构造最相关的特征来训练模型。
           - 深度学习:利用表示学习 (representation learning),机器学习模型自身能够从原始数据中自动学习和提取有用的特征。这种方法不需要手动选择特征、压缩维度或转换格式。

2. 数据依赖性:
           - 传统机器学习:通常需要大量的标记数据来训练模型,因为模型的性能很大程度上取决于输入的数据质量。
           - 深度学习:对于深度学习,尤其是当使用无监督学习方法时,可以处理大量未标记的数据。此外,深度网络的多层结构使其能够学习数据的多层次表示。

3. 计算资源:
           - 传统机器学习:通常需要的计算资源较少,因为它们的模型结构简单。
           - 深度学习:由于其复杂的网络结构和大量的参数,深度学习模型通常需要更多的计算资源,如GPU加速。

4. 模型解释性:
           - 传统机器学习:许多传统的机器学习算法(如决策树、支持向量机等)提供相对较高的模型解释性,因为它们的决策过程往往是直观的。
           - 深度学习:深度学习模型,尤其是深层神经网络,通常被视为“黑箱”,因为它们的内部工作机制很难解释。

5. 应用领域:
           - 传统机器学习:广泛应用于各种领域,如金融、医疗、零售等,其中特征的选择和工程是关键步骤。
           - 深度学习:由于其强大的表示学习能力,尤其在图像识别、语音识别和自然语言处理等领域表现出色。

3、深度学习的应用领域

        深度学习是人工智能的一个分支,它教神经网络学习和推理。深度学习在图像识别自然语言处理语音识别推荐系统自动驾驶汽车医疗保健欺诈检测游戏等领域都有广泛的应用  。

二、深度学习基本原理

1、神经网络的基本结构

(1)什么是神经网络?

        神经网络,又称人工神经网络 (ANN) 或模拟神经网络 (SNN),是机器学习的一个重要子领域,同时也是深度学习算法的核心。其名称和结构均受到人脑的启发,目的是模拟大脑的某些机理与机制,实现诸如图像识别、语音识别等功能。

基本组成:
        - 神经元:这是神经网络的基本单位。每个神经元接收一组输入和一个偏置值,当信号(值)到达时会乘以一个权值。如果神经元有4个输入,那么就有4个权值,这些权重可以在训练时进行调整。
        - 层:神经网络由相互连接的节点组成,也称为人工神经元,这些节点按层组织。例如,一个三层的神经网络可能包括输入层、隐藏层和输出层。

主要特点:
        1. 自我学习和改进:神经网络能够无需人工干预地自我学习和改进。它可以直接从数据中学习特征。
        2. 适应性:通过分析神经网络的结构,我们可以找到优化其性能的方法,如调整层数或节点数,或者调整网络处理输入数据的方式。
        3. 应用广泛:神经网络被广泛应用于各种领域,从图像和语音识别到预测股市等。

(2)神经网络基本结构

        神经网络的基本结构分为四大类: 标准网络循环网络卷积网络自动编码器

        标准网络(Standard Network,SN):是最基本的神经网络类型,包括感知器和前馈网络。感知器是所有神经网络的基础,并且是更复杂的神经网络的基本构建模块。它只连接一个输入神经元和一个输出神经元。前馈网络是由多个感知器组成的集合,其中包含三种基本类型的层:输入层、隐藏层和输出层。在前馈网络中,来自上一层的信号会被乘以权重并增加偏置,然后通过激活函数。前馈网络使用反向传播来迭代更新参数,直到达到理想的性能为止。

        循环网络(Recurrent Neural Network ,RNN):是一种处理序列数据的神经网络,例如自然语言处理或时间序列预测。在循环网络中,尝试识别数据中的最小单元,并将数据视为一组这样的单元进行处理。最常见的方法是将一个单词作为一个单元,并在处理句子时将句子视为一组单词。

        卷积网络(Convolutional Neural Network, CNN):是一种常用于图像识别和分类的深度学习模型。卷积网络中的卷积层可以有效地提取图像中的空间特征,并通过池化层压缩数据大小,降低模型复杂度。

        自动编码器(Autoencoder):是一种无监督学习模型,主要用于数据的特征提取和降维。自动编码器试图学习输入数据的有效表示(编码),并能够从该表示中重构原始输入数据。

2、激活函数的作用和选择

(1)什么是激活函数?

        激活函数是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。在神经元中,输入的input经过一系列加权求和后作用于另一个函数,这个函数就是这里的激活函数。类似于人类大脑中基于神经元的模型,激活函数最终决定了是否传递信号以及要发射给下一个神经元的内容。在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数。 

        激活函数可以分为线性激活函数(线性方程控制输入到输出的映射,如f(x)=x等)以及非线性激活函数(非线性方程控制输入到输出的映射,比如Sigmoid、Tanh、ReLU、LReLU、PReLU、Swish 等) 。

        **注:Sigmoid、Tanh、ReLU、LReLU、PReLU、Swish都是非线性激活函数,它们都在人工神经网络中起到关键的作用。非线性激活函数如Sigmoid和Tanh可以将输入的线性组合转化为非线性输出。

        Sigmoid函数的公式为S(x)=1/(1+exp(-x)),它将输入的每个值压缩到0和1之间。但是,当输入值远离0时,Sigmoid函数的梯度将接近于0,这可能会导致在训练过程中出现梯度消失的问题。

        Tanh函数与Sigmoid函数类似,但它是零中心的,也就是说它的输出范围在-1到1之间。然而,Tanh函数也存在饱和问题。

        ReLU(Rectified Linear Unit)函数对正数原样输出,负数直接置零。它在正数区域不饱和,在负数区域硬饱和。ReLU函数计算上比Sigmoid或者Tanh更省计算量,因为不用exp,因而收敛较快。能够帮助解决sigmoid随着层数的增加梯度衰减现象。但是还是非zero-centered。

        LReLU(Leaky ReLU)是ReLU的变体,区别在于它不是将所有负值设为零,而是引入一个小的正数斜率。PReLU(Parametric ReLU)是另一个ReLU的变体,其参数化负数部分允许网络学习负数斜率的最佳值。

        Swish是一种自门控激活函数,其计算公式为f(x) = x / ( 1 + e^(-x) )。        

 (2)激活函数的作用与选择

  • Sigmoid 函数:能将输入值压缩到0和1之间,常用于二分类问题的输出层。
  • Tanh 函数:与Sigmoid类似,但输出范围是-1到1,常用于二分类问题的输出层。
  • ReLU 函数:当输入值大于0时,输出值等于输入值;当输入值小于等于0时,输出值为0。ReLU是目前最常用的激活函数之一,因为它能够缓解梯度消失问题。
  • Leaky ReLU 函数:在输入值小于0时,输出值为0.01乘以输入值;在输入值大于0时,输出值等于输入值。这种激活函数可以解决ReLU激活函数在负数区域的问题。
  • PReLU 函数:在输入值小于0时,输出值为0.2乘以输入值的绝对值;在输入值大于0时,输出值等于输入值。这种激活函数也可以解决ReLU激活函数在负数区域的问题。

3、损失函数的定义和选择

(1)什么是损失函数

        损失函数,也叫损失准则,是用来度量模型预测值与真实值之间的差异程度的一种方法。损失函数是一个非负实值函数,通常用符号L(Y, f(x))来表示,其中Y代表真实值,f(x)代表模型的预测值。损失函数越小,说明模型预测值与真实值越接近,模型的鲁棒性就越好。

(2)损失函数的选择

        损失函数在模型训练阶段发挥着重要的作用。每个批次的训练数据送入模型后,通过前向传播输出预测值,然后损失函数会计算出预测值和真实值之间的差异值,也就是损失值。得到损失值之后,模型通过反向传播去更新各个参数,以降低真实值与预测值之间的损失,使得模型生成的预测值更接近真实值,从而达到学习的目的。

        关于如何选择损失函数,需要考虑以下因素:

  1.                 回归问题:均方误差、平均绝对误差等。
  2.                 分类问题:交叉熵、对数损失等。        
  3.                 排名问题:平均精度差、有序列表挖掘的损失等 。

        选择损失函数的基本要求是衡量模型输出分布和样本标签分布之间的接近程度。此外,根据特定的预测建模问题(如分类或回归),损失函数的选择必须匹配问题的框架。例如,对于神经网络模型,输出层的参数选择也必须与所选的损失函数相适应。因此,如何选择合适的损失函数是问题抽象建模中的关键步骤。

4、反向传播算法的原理和应用

        反向传播算法,全称误差反向传播(Back-propagation, BP)算法,是神经网络发展的重大突破,也是现在众多深度学习训练方法的基础。它是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。

        该算法的基本思想包括以下步骤:
        1. 先计算每一层的状态和激活值,直到最后一层(即信号是前向传播的);
        2. 计算每一层的误差,误差的计算过程是从最后一层向前推进的(即误差是反向传播的);
        3. 计算每个神经元连接权重的梯度;
        4. 根据梯度下降法则更新参数(目标是误差变小)。迭代以上步骤,直到满足停止准则(比如相邻两次迭代的误差的差别很小)。

        在具体实施过程中,首先进行前向传播,输入数据按照从输入层到输出层的顺序,通过网络的每一层进行传递,并计算每一层的输出。然后在输出层得到预测结果后,用一个损失函数来衡量预测结果与真实标签的差异。最后开始反向传播的过程,从输出层开始,向输入层方向进行。

三、深度学习常用算法和模型

a. 卷积神经网络(CNN)

  • CNN的原理和应用

        卷积神经网络(CNN)是一种深度学习算法,主要应用于图像识别领域。CNN的价值在于其能够将大数据量的图片有效地降维成小数据量,同时保留图片的特征,这类似于人类的视觉原理。

        CNN的基本结构主要包括卷积层池化层全连接层
        1. 卷积层:这是CNN的核心部分,主要用于提取图像的特征。通过卷积操作,可以捕捉到图像中的局部特征。
        2. 池化层:其主要作用是降低数据的维度,同时保留重要的特征信息。这有助于减少网络的复杂性,提高计算效率。
        3. 全连接层:在卷积层和池化层提取并处理了图像的特征后,全连接层用于对特征进行高级处理并输出最终的分类结果。

  • CNN的常用层结构和参数设置

        卷积神经网络(CNN)的常用层结构和参数设置主要包含以下几个部分:

        1. 数据输入层:这是网络的第一层,用于接收原始图像数据。在处理原始图像数据时,通常需要进行预处理,包括去均值和归一化等操作。输入图像的尺寸通常是可以被2整除多次的像素值矩阵,常用的数字包括32,64,96,224,384和512。

        2. 卷积计算层:也被称为CONV层,是网络的核心部分,主要用于从输入图像中提取特征。这一层会通过多个不同的滤波器(或卷积核)对输入图像进行卷积操作,以提取出图像的不同特征。

        3. ReLU激励层:这一层的主要作用是对上一层输出的结果进行非线性变换,增强网络的表达能力。常用的激活函数包括ReLU、Sigmoid和Tanh等。

        4. 池化层:池化层的作用主要是降低数据的维度,同时保留重要的特征信息。常用的池化方法有Max Pooling和Average Pooling等。

        5. 全连接层:全连接层通常位于网络的最后部分,用于将之前提取并处理的特征进行高级处理并输出最终的分类结果。

        值得注意的是,CNN的设计选择和参数设定会严重影响网络的训练和表现。例如,滤波器的大小、步长以及填充方式等都需要根据具体的应用场景和需求来设定。此外,虽然很多架构的选择都是凭借直觉,而非有充分的数学论证,但这些直觉往往是基于大量的实验结果。

b. 循环神经网络(RNN)

  • RNN的原理和应用

        循环神经网络(Recurrent Neural Network,RNN)是深度学习中的一种主流模型,特别适用于处理序列数据的任务。其核心原理在于,RNN具有记忆能力,能够捕捉并使用序列中的时序信息,因此可以对序列数据进行有效的建模。

        RNN的结构特点是,网络会对序列中的每个元素进行处理,并将结果传递给下一个元素。同时,RNN还会将自身的输出作为输入,结合之前的输出一起处理当前的元素,这种方式使得RNN能够捕捉到时间关系和依赖性信息。

        RNN的主要应用包括自然语言处理、时间序列预测和语音识别等领域。例如,在自然语言处理任务中,RNN可以用于词性标注、命名实体识别等;在时间序列预测中,RNN可以用于预测股票价格、天气变化等;在语音识别中,RNN可以用于将语音信号转换为文本。

  • RNN的常用变体和参数设置

        RNN的常用变体主要包括长短期记忆网络(Long Short-Term Memory,LSTM)和门控循环单元(Gated Recurrent Unit,GRU)。LSTM通过引入门机制解决了RNN的长期依赖问题,而GRU则通过减少参数数量和模型复杂度,同时保持了较好的性能。

        在参数设置方面,我们需要关注三个重要的超参数:学习率、批次大小和迭代次数。学习率决定了权重更新的速度;批次大小影响每次训练使用的样本数;而迭代次数则决定了整个训练过程重复执行的次数。

        至于RNN的训练方法,最常用的是反向传播通过时间(Backpropagation Through Time,BPTT)。这种方法是基于时间反向传播的,因此被称为随时间反向传播。

c. 生成对抗网络(GAN)

  • GAN的原理和应用

        GAN,全称为生成对抗网络,是一种深度学习模型,它的核心原理是通过两个神经网络相互博弈学习产生数据。这两个神经网络分别是生成器判别器。生成器负责从随机噪声中生成数据,试图欺骗判别器以为是真实的数据。判别器则负责判断这些数据是真实还是由生成器生成的。在这场“博弈”中,生成器和判别器不断进行迭代优化,最终实现生成越来越逼真的数据。

        GAN的主要应用可以分为两个方面:数据生成无监督学习。在数据生成方面,GAN常用于图像生成,常用的有DCGAN、WGAN、BEGAN等。此外,由于GAN是一种无监督学习的典范,因此它在无监督学习和半监督学习领域也有广泛的应用。例如,通过GAN可以对大量的未标记数据进行学习,进而提升模型的泛化能力。

  • GAN的生成器和判别器的工作原理

        GAN的核心组件是生成器和判别器,它们在训练过程中扮演着不同的角色并且相互对抗。生成器的目标是创建看起来像真实数据的新数据,判别器的任务则是判断这些新创建的数据是否真实。

        生成器从一个随机噪声中生成数据,试图欺骗判别器以为是真实的数据。为了实现这一点,生成器会尽量最小化重构误差和正则项来学习潜在空间的分布,并使用重参数化技巧来实现可导性。

        判别器则需要判断这些生成的数据是真实的还是由生成器生成的。如果判别器不能准确地区分出真假数据,那么就说明生成器成功地创造了逼真的数据。

        在训练过程中,生成器和判别器不断进行博弈:生成器试图生成能够“欺骗”判别器的样本,判别器则努力提高其判别真假样本的准确性。通过这种方式,两者不断调整自己的参数,直到达到一个平衡点。在这个平衡点上,生成器能够生成非常逼真的样本,而判别器无法准确区分出真实样本和生成样本。这个过程可以通过多次迭代进行优化,使得生成的样本越来越逼真。

d. 其他常用的深度学习模型和算法

除了RNN、CNN和GAN,深度学习领域还有许多其他的模型和算法。例如:

        1. DBN (Deep Belief Network): 它是一种生成式神经网络,由多层隐藏层和可见层组成,并使用受限玻尔兹曼机(Restricted Boltzmann Machine)作为其隐藏层单元。尽管DBN在理解深度学习的“哲学”和“思维模式”方面很有价值,但在实际应用中,CNN和RNN等模型更为常用。

        2. RNTN (Recurrent Neural Turing Machine): 它是一种结合了RNN和Turing Machine的模型,旨在处理序列数据和记忆任务。

        3. 自动编码器 (Autoencoder): 这是一种无监督的神经网络模型,用于学习数据的压缩表示,并通过解码器重构输入数据。

        4. 全连接神经网络 (FCNN): 与CNN不同,FCNN完全连接所有的输入和输出层。它通常用于较少的维度和简单的结构。

        5. 多层感知机 (MLP): 这是最简单的深度学习模型之一,由一个或多个隐藏层和一个输出层组成。它常用于监督学习任务。

四、深度学习实践操作

1、安装和配置深度学习工具

https://download.csdn.net/download/qq_51701007/86869061?spm=1001.2014.3001.5503icon-default.png?t=N7T8https://download.csdn.net/download/qq_51701007/86869061?spm=1001.2014.3001.5503

2、使用深度学习框架实现入门实验:PR-曲线、线性回归、卷积神经网络、GAN生成式对抗神经网络

https://codeknight.blog.csdn.net/article/details/127858897icon-default.png?t=N7T8https://codeknight.blog.csdn.net/article/details/127858897

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

渗透测试之Kali如何利用CVE-2019-0708漏洞渗透Win7

环境: 1.攻击者IP:192.168.1.10 系统: KALI2022(vmware 16.0) 2.靶机IP:192.168.1.8 系统:Windows 7 6.1.7601 Service Pack 1 Build 7601 已开启远程协助RDP服务开启了3389端口 问题描述: KALI 如何利用CVE-2019-0708漏洞渗透Win7 解决方案: 1.打开kali,msf搜索…

ES可视化工具--ElasticHD

说明 ElasticHD 是 github 上的一个开源的项目,所以他没有官方网站,但 github 上的项目界面也可称为是它的官方界面了。 在 github 上直接搜索 ElasticHD 即可找到它,下面我将留下它的直接跳转链接。ElasticHD 下载 在 github 上搜索到之后…

测试驱动开发:基于Jenkins+GoTest+HTML的持续化集成

目录 前言 一、项目框架 1.项目迭代 2.项目时序图 3.项目测试执行 二、项目具体实现 1.创建流水线 2.拉取代码 3.执行测试代码 4.生成测试报告 5.报告内容解读 6.数据统计 7.邮件通知 8.企业微信通知 三、项目遇到的问题 1.go test -args 2.go test生…

C++中基类的析构函数为什么要用virtual虚析构函数

直接的讲,C中基类采用virtual虚析构函数是为了防止内存泄漏。具体地说,如果派生类中申请了堆内存空间,并在其析构函数中对这些内存空间进行释放。假设基类中采用的是非虚析构函数,当删除基类指针指向的派生类对象时就不会触发动态…

给科研人的 ML 开源发布工具包

什么是开源发布工具包? 恭喜你的论文成功发表,这是一个巨大的成就!你的研究成果将为学界做出贡献。 其实除了发表论文之外,你还可以通过发布研究的其他部分,如代码、数据集、模型等,来增加研究的可见度和采…

tinyxml2

使用tinyxml2,得知道一些xml基础 xml tutorial--菜鸟 tinyxml2类对象 链接 结构 XMLNode 什么是节点 节点:元素、声明、文本、注释等。 XMLDocument xml文档(文件)对象。 作用: 加载xml文件, tinyxml2作用 1,…

数据守护盾牌:敏感数据扫描与脱敏,让安全合规无忧

前言 在信息时代,数据已经成为企业和组织的核心资产,其价值与日俱增。然而,随着数据使用的普及和复杂度的提升,数据安全与合规问题也变得越来越突出。敏感数据的保护显得尤为重要,因为这些数据一旦泄露或被不当使用&a…

Servlet系列两种创建方式

一、使用web.xml的方式配置(Servlet2.5之前使用) 在早期版本的Java EE中,可以使用XML配置文件来定义Servlet。在web.xml文件中,可以定义Servlet的名称、类名、初始化参数等。然后,在Java代码中实现Servlet接口&#x…

【机器学习300问】9、梯度下降是用来干嘛的?

当你和我一样对自己问出这个问题后,分析一下!其实我首先得知道梯度下降是什么,也就它的定义。其次我得了解它具体用在什么地方,也就是使用场景。最后才是这个问题,梯度下降有什么用?怎么用? 所以…

muduo网络库剖析——监听者EpollPoller类

muduo网络库剖析——监听者EpollPoller类 前情从muduo到my_muduo 概要epoll原理解析epoll提供的接口epoll的触发模式epoll实现多路复用 框架与细节成员函数使用方法 源码结尾 前情 从muduo到my_muduo 作为一个宏大的、功能健全的muduo库,考虑的肯定是众多情况是否…

低代码配置-属性配置面板设计

模块设计 tab项切换 组件基础属性组件数据属性组件事件属性表单属性 模块输出函数设计 tab切换函数 列表表单属性 数据来源: 调用接口时一次赋予,无需使用selectItem,如需使用,归入基础属性列表标题是否展示筛选区域 示例&am…

前端框架前置学习Webpack(1) 常用webpack配置

什么是Webpack? 定义 本质上,Webpack是用于现代JavaScript应用程序的静态模块打包工具.当webpack处理应用程序时,它会在内部从一个或多个入口点构建一个依赖图(dependency graph),然后将你项目中所需的每一个模块组合成一个或多个bundles,它们均为静态资源,用于展示你的内容.…

数学建模--论文

内容来自数学建模BOOM:【快速入门】北海:数模建模基础MATLAB入门论文写作数学模型与算法(推荐数模美赛国赛小白零基础必看教程)_哔哩哔哩_bilibili 目录 一、论文整体模版 1.整体框架 2.示例 二、标题 1.标题主题事项 三、摘要 1.摘要三要素&am…

LaTeX 多栏文档 Multiple columns如何插入图片并修改样式

在今天写报告的时候用到了 latex 的多栏列表,插入图片的时候感觉很无助 如果不喜欢让Latex自动安排图片位置,可以使用float包,然后可以使用\begin{figure}[H]。 记得提前导入这个包 \usepackage{float} 为了让我的图片的caption居中&#xf…

Go 语言中高效切片拼接和 GO 1.22 提供的新方法

Table Contents 切片拼接的必要性基本拼接方法及其局限性使用 append 函数高效拼接的策略控制容量和避免副作用利用 Go 1.22 的新特性切片动态扩容的深入理解内存重新分配与数据迁移性能优化策略结论在 Go 语言中,切片拼接是一项常见的操作,但如果处理不当,可能会导致性能问…

Verilog刷题笔记15

题目: An adder-subtractor can be built from an adder by optionally negating one of the inputs, which is equivalent to inverting the input then adding 1. The net result is a circuit that can do two operations: (a b 0) and (a ~b 1). See Wikipe…

[go语言]输入输出

目录 知识结构 输入 1.Scan ​编辑 2.Scanf 3.Scanln 4.os.Stdin --标准输入,从键盘输入 输出 1.Print 2.Printf 3.Println 知识结构 输入 为了展示集中输入的区别,将直接进行代码演示。 三者区别的结论:Scanf格式化输入&#x…

中科院罗小舟团队提出 UniKP 框架,大模型 + 机器学习高精度预测酶动力学参数

作者:李宝珠 编辑:三羊 中国科学院深圳先进技术研究院罗小舟团队提出了,基于酶动力学参数预测框架 (UniKP),实现多种不同的酶动力学参数的预测。 众所周知,生物体内的新陈代谢是通过各种各样的化学反应来实现的。这…

SpringBoot 统计API接口用时该使用过滤器还是拦截器?

统计请求的处理时间(用时)既可以使用 Servlet 过滤器(Filter),也可以使用 Spring 拦截器(Interceptor)。两者都可以在请求处理前后插入自定义逻辑,从而实现对请求响应时间的统计。 …

Modelsim SE 10.5安装教程

ModelSim 是一种功能强大的硬件描述语言 (HDL,Hardware Description Language) 仿真和验证工具,可以单独仿真,也可以联合Quartus/Vivado等软件联合仿真,仿真速度快,广泛应用于数字电路设计和验证领域。 大学老师爱教VH…