深入理解 PyTorch 激活函数:从基础到高效实用技巧(4)

news2024/11/20 17:37:21

目录

torch.nn.functional激活层详解

tanh

1. 函数用途

2. 参数详解

3. Tanh函数的定义及数学解释

4. 使用示例

sigmoid

1. 函数用途

2. 参数详解

3. Sigmoid函数的定义及数学解释

4. 使用示例

hardsigmoid

1. 函数用途

2. 参数详解

3. Hardsigmoid函数的定义及数学解释

4. 使用示例

silu

1. 函数用途

2. 参数详解

3. SiLU函数的定义及数学解释

4. 使用示例

mish

1. 函数用途

2. 参数详解

3. Mish函数的定义及数学解释

4. 使用示例

batch_norm

1. 函数用途

2. 参数详解

3. Batch Normalization的工作原理

4. 使用示例

group_norm

1. 函数用途

2. 参数详解

3. 工作原理

4. 使用示例

instance_norm

1. 函数用途

2. 参数详解

3. 工作原理

4. 使用示例

layer_norm

1. 函数用途

2. 参数详解

3. 工作原理

4. 使用示例

local_response_norm

1. 函数用途

2. 参数详解

3. 工作原理

4. 使用示例

normalize

1. 函数用途

2. 参数详解

3. 工作原理

4. 使用示例

总结 


torch.nn.functional激活层详解

tanh

torch.nn.functional.tanh 是 PyTorch 框架中的一个函数,用于逐元素应用双曲正切(Tanh)激活函数。

1. 函数用途

Tanh 函数是深度学习中常用的非线性激活函数之一。它将输入值压缩到 (-1, 1) 的范围内,对于中心化数据特别有效。Tanh 函数在处理数据时提供平滑的过渡,常用于隐藏层的激活函数。

2. 参数详解

  • input(Tensor):输入的张量。

3. Tanh函数的定义及数学解释

Tanh 激活函数的数学表达式是:

  • Tanh(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))

这个公式表示输入值的指数减去其负指数,然后除以这两个指数的和。结果是一个在 -1 和 1 之间的输出,提供了一个平滑的非线性变换。

4. 使用示例

import torch
import torch.nn.functional as F

# 创建一个示例张量
input_tensor = torch.tensor([-2.0, 0.0, 2.0])

# 应用Tanh激活函数
output_tensor = F.tanh(input_tensor)

# 输出结果
print("原始张量:", input_tensor)
print("Tanh处理后的张量:", output_tensor)

在这个示例中,Tanh 函数将输入张量的每个元素转换为介于 -1 和 1 之间的值。Tanh 函数由于其平滑和中心化的特性,适用于多种深度学习模型中,特别是在需要平衡激活值范围的隐藏层中。

sigmoid

torch.nn.functional.sigmoid 是 PyTorch 框架中的一个函数,用于逐元素应用 Sigmoid 激活函数。

1. 函数用途

Sigmoid 函数是一种广泛使用的非线性激活函数,它将输入值压缩到 (0, 1) 的范围内。这使得它特别适用于将输出解释为概率,例如在二元分类问题中。Sigmoid 函数因其 S 形曲线而得名,常用于神经网络的输出层。

2. 参数详解

  • input(Tensor):输入的张量。

3. Sigmoid函数的定义及数学解释

Sigmoid 激活函数的数学表达式是:

  • Sigmoid(x) = 1 / (1 + exp(-x))

这个公式表示计算输入值的负指数,加 1 后取其倒数。结果是一个在 0 和 1 之间的输出,提供了平滑的非线性变换。

4. 使用示例

import torch
import torch.nn.functional as F

# 创建一个示例张量
input_tensor = torch.tensor([-2.0, 0.0, 2.0])

# 应用Sigmoid激活函数
output_tensor = F.sigmoid(input_tensor)

# 输出结果
print("原始张量:", input_tensor)
print("Sigmoid处理后的张量:", output_tensor)
# 输出将是:
# 原始张量: tensor([-2.0000,  0.0000,  2.0000])
# Sigmoid处理后的张量: tensor([0.1192, 0.5000, 0.8808])

在这个示例中,Sigmoid 函数将输入张量的每个元素转换为介于 0 和 1 之间的值。 

hardsigmoid

torch.nn.functional.hardsigmoid 是 PyTorch 框架中的一个函数,用于逐元素应用 Hardsigmoid 激活函数。

1. 函数用途

Hardsigmoid 函数是 Sigmoid 激活函数的分段线性近似。与传统的 Sigmoid 相比,Hardsigmoid 提供了计算上更简单和更快的版本,尤其适用于需要提高运算效率的场景,例如在硬件加速环境中。

2. 参数详解

  • input(Tensor):输入的张量。
  • inplace(bool):如果设置为 True,则会在原地进行操作,不会创建新的张量。默认为 False。

3. Hardsigmoid函数的定义及数学解释

Hardsigmoid 激活函数的数学表达式是:

  • 如果 x ≤ -3,则 Hardsigmoid(x) = 0
  • 如果 x ≥ +3,则 Hardsigmoid(x) = 1
  • 否则,Hardsigmoid(x) = x / 6 + 1 / 2

这个公式将输入值分为三个区域:小于等于 -3 的区域输出为 0,大于等于 +3 的区域输出为 1,介于这两者之间的区域输出为 x / 6 + 1 / 2

4. 使用示例

import torch
import torch.nn.functional as F

# 创建一个示例张量
input_tensor = torch.tensor([-4.0, -2.0, 0.0, 2.0, 4.0])

# 应用Hardsigmoid激活函数
output_tensor = F.hardsigmoid(input_tensor)

# 输出结果
print("原始张量:", input_tensor)
print("Hardsigmoid处理后的张量:", output_tensor)
# 输出将是:
# 原始张量: tensor([-4.0000, -2.0000,  0.0000,  2.0000,  4.0000])
# Hardsigmoid处理后的张量: tensor([0.0000, 0.1667, 0.5000, 0.8333, 1.0000])

silu

torch.nn.functional.silu 是 PyTorch 框架中的一个函数,用于按元素应用 Sigmoid Linear Unit(SiLU)函数,该函数也被称为 swish 函数。

1. 函数用途

SiLU 激活函数是深度学习中的一种创新激活函数,结合了 Sigmoid 函数的门控特性和线性单元的优势。它通过自我门控机制,使得网络能够自适应地调整信息的传递,从而改善学习性能。

2. 参数详解

  • input(Tensor):输入的张量。
  • inplace(bool,默认为 False):如果设置为 True,则会在原地进行操作,不会创建新的张量。

3. SiLU函数的定义及数学解释

SiLU 激活函数的数学表达式是:

  • silu(x) = x * σ(x)

其中 σ(x) 是逻辑 Sigmoid 函数。这意味着每个输入值 x 被它自己的 Sigmoid 函数输出所缩放。

4. 使用示例

import torch
import torch.nn.functional as F

# 创建一个示例张量
input_tensor = torch.tensor([-2.0, 0.0, 2.0])

# 应用SiLU激活函数
output_tensor = F.silu(input_tensor)

# 输出结果
print("原始张量:", input_tensor)
print("SiLU处理后的张量:", output_tensor)

## 原始张量: tensor([-2.0000,  0.0000,  2.0000])
## SiLU处理后的张量: tensor([-0.2384,  0.0000,  1.7616])

在这个示例中,SiLU 函数将输入张量的每个元素转换为其 Sigmoid 缩放的值。SiLU 函数由于其自适应和平滑的特性,适用于各种深度学习模型,尤其是在需要复杂非线性激活功能的场合。

mish

torch.nn.functional.mish 是 PyTorch 框架中的一个函数,用于按元素应用 Mish 激活函数。

1. 函数用途

Mish 函数是一种非线性激活函数,用于深度学习模型中。它被设计为自我调节的非单调神经激活函数,提供了优秀的性能并帮助提升模型的学习能力。Mish 函数特别适用于深度卷积神经网络和其他需要复杂非线性激活的场景。

2. 参数详解

  • input(Tensor):输入的张量。
  • inplace(bool,默认为 False):如果设置为 True,则会在原地进行操作,不会创建新的张量。

3. Mish函数的定义及数学解释

Mish 激活函数的数学表达式是:

  • Mish(x) = x * Tanh(Softplus(x))

这个公式结合了 Tanh 和 Softplus 函数的特点,其中 Softplus 函数为 Softplus(x) = log(1 + exp(x))。Mish 函数通过将输入值与其 Softplus 的 Tanh 值相乘,实现了一种有效的非线性变换。

4. 使用示例

import torch
import torch.nn.functional as F

# 创建一个示例张量
input_tensor = torch.tensor([-2.0, 0.0, 2.0])

# 应用Mish激活函数
output_tensor = F.mish(input_tensor)

# 输出结果
print("原始张量:", input_tensor)
print("Mish处理后的张量:", output_tensor)

在这个示例中,Mish 函数为输入张量的每个元素提供了平滑且有效的非线性激活。Mish 函数由于其自适应和高性能的特性,适用于各种深度学习模型,尤其是在需要强大的非线性激活功能的场合。

batch_norm

torch.nn.functional.batch_norm 是 PyTorch 框架中的一个函数,用于对一批数据中的每个通道应用批量归一化(Batch Normalization)。

1. 函数用途

批量归一化是一种广泛应用于深度学习模型中的技术,旨在提高训练速度、稳定性并减少对初始化的依赖。通过规范化每个特征通道的输入分布,它有助于防止内部协变量偏移(Internal Covariate Shift),从而改善模型的训练效果和泛化能力。

2. 参数详解

  • input(Tensor):输入的张量。
  • running_mean(Tensor):用于计算均值的张量。
  • running_var(Tensor):用于计算方差的张量。
  • weight(Tensor,可选):可学习的缩放系数。
  • bias(Tensor,可选):可学习的偏移量。
  • training(bool):指示模型是否在训练状态;为 True 时,会使用 running_meanrunning_var 计算的均值和方差,为 False 时,会使用输入数据的均值和方差。
  • momentum(float):用于更新 running_meanrunning_var 的动量。
  • eps(float):用于避免除以零,加到方差中的小值。

3. Batch Normalization的工作原理

批量归一化通过以下步骤对输入数据进行归一化处理:

  • 计算一批数据的均值和方差。
  • 使用均值和方差对数据进行归一化。
  • 使用可学习的参数对归一化后的数据进行缩放和偏移。

这种处理方式有助于确保网络中每层的输入分布保持相对稳定,减少了层数增加带来的训练困难。

4. 使用示例

import torch
import torch.nn.functional as F

# 创建一个示例张量
input_tensor = torch.randn(2, 3) # 假设有2个样本,每个样本3个特征
running_mean = torch.zeros(3)
running_var = torch.ones(3)

# 应用Batch Normalization
output_tensor = F.batch_norm(input_tensor, running_mean, running_var, training=True)

# 输出结果
print("原始张量:", input_tensor)
print("Batch Normalization处理后的张量:", output_tensor)

输出将展示批量归一化处理后的张量,其中每个特征通道的均值和方差都被规范化。批量归一化在提高模型训练速度和稳定性方面发挥着关键作用,是现代深度神经网络中不可或缺的组件之一。

group_norm

torch.nn.functional.group_norm 是 PyTorch 框架中的一个函数,用于对输入的最后几个维度应用组归一化(Group Normalization)。

1. 函数用途

组归一化是一种在神经网络中常用的规范化技术,特别是当批量大小很小或者不稳定时。不同于批量归一化(Batch Normalization)对整个批量数据进行归一化,组归一化将输入的通道分为多个组,并对每个组内的特征进行归一化。这使得组归一化在训练过程中更加稳定,且对批量大小不敏感。

2. 参数详解

  • input(Tensor):输入的张量。
  • num_groups(int):要划分的组数。
  • weight(Tensor,可选):可学习的缩放系数。
  • bias(Tensor,可选):可学习的偏移量。
  • eps(float):用于避免除以零,加到方差中的小值。

3. 工作原理

组归一化通过以下步骤工作:

  • 将输入的通道分为指定数量的组。
  • 计算每个组内的均值和方差。
  • 使用这些统计数据对每个组内的数据进行归一化。
  • 可选地应用缩放和偏移变换。

4. 使用示例

import torch
import torch.nn.functional as F

# 创建一个示例张量
input_tensor = torch.randn(2, 6) # 假设有2个样本,每个样本6个通道
num_groups = 2

# 应用Group Normalization
output_tensor = F.group_norm(input_tensor, num_groups)

# 输出结果
print("原始张量:", input_tensor)
print("Group Normalization处理后的张量:", output_tensor)

instance_norm

torch.nn.functional.instance_norm 是 PyTorch 框架中的一个函数,用于对每个数据样本中的每个通道应用实例归一化(Instance Normalization)。

1. 函数用途

实例归一化是一种在深度学习中常用的规范化技术,特别是在样式转换和生成对抗网络(GANs)中。与批量归一化(Batch Normalization)和组归一化(Group Normalization)不同,实例归一化是在单个样本的每个通道上独立进行的,使得其特别适用于处理样式化任务和非稳定数据。

2. 参数详解

  • input(Tensor):输入的张量。
  • running_mean(Tensor,可选):用于计算均值的张量。
  • running_var(Tensor,可选):用于计算方差的张量。
  • weight(Tensor,可选):可学习的缩放系数。
  • bias(Tensor,可选):可学习的偏移量。
  • use_input_stats(bool):是否使用输入数据的统计信息。当为 True 时,使用输入数据的均值和方差;为 False 时,使用 running_meanrunning_var
  • momentum(float):用于更新 running_meanrunning_var 的动量。
  • eps(float):用于避免除以零,加到方差中的小值。

3. 工作原理

实例归一化通过以下步骤对输入数据进行归一化处理:

  • 独立地计算每个样本的每个通道的均值和方差。
  • 使用这些统计数据对每个通道进行归一化。
  • 可选地应用缩放和偏移变换。

这种处理方式有助于确保网络在处理不同样本时具有更强的鲁棒性,尤其是在样式化和图像生成的应用中。

4. 使用示例

import torch
import torch.nn.functional as F

# 创建一个示例张量
input_tensor = torch.randn(2, 3, 5, 5) # 假设有2个样本,每个样本3个通道,大小为5x5
running_mean = None
running_var = None
weight = None
bias = None

# 应用Instance Normalization
output_tensor = F.instance_norm(input_tensor, running_mean, running_var, weight, bias, use_input_stats=True)

# 输出结果
print("原始张量:", input_tensor)
print("Instance Normalization处理后的张量:", output_tensor)

 在这个示例中,输入张量的每个通道都独立进行了实例归一化处理。实例归一化特别适用于需要独立处理每个样本特征的深度学习模型,例如在图像风格化和高级图像处理中。

layer_norm

torch.nn.functional.layer_norm 是 PyTorch 框架中的一个函数,用于对输入的最后几个维度进行层归一化(Layer Normalization)。

1. 函数用途

层归一化是一种在深度学习中常用的规范化技术,特别适用于循环神经网络(RNNs)和自注意力模型(如 Transformer)。与批量归一化不同,层归一化不是对批次的每个通道进行归一化,而是在单个样本的特定层内进行归一化。这有助于稳定训练过程,并减少批次大小对模型性能的影响。

2. 参数详解

  • input(Tensor):输入的张量。
  • normalized_shape:要归一化的输入形状的最后几个维度。
  • weight(Tensor,可选):可学习的缩放系数。
  • bias(Tensor,可选):可学习的偏移量。
  • eps(float):用于避免除以零,加到方差中的小值。

3. 工作原理

层归一化通过以下步骤工作:

  • 在单个样本的特定层(或几个维度)内独立计算均值和方差。
  • 使用这些统计数据对该层进行归一化。
  • 可选地应用缩放和偏移变换。

4. 使用示例

import torch
import torch.nn.functional as F

# 创建一个示例张量
input_tensor = torch.randn(2, 5, 10) # 假设有2个样本,每个样本5个特征,每个特征10个元素
normalized_shape = (5, 10)

# 应用Layer Normalization
output_tensor = F.layer_norm(input_tensor, normalized_shape)

# 输出结果
print("原始张量:", input_tensor)
print("Layer Normalization处理后的张量:", output_tensor)

local_response_norm

torch.nn.functional.local_response_norm 是 PyTorch 框架中的一个函数,用于对多个输入平面组成的输入信号应用局部响应归一化(Local Response Normalization, LRN)。这种归一化是在通道维度上进行的。

1. 函数用途

局部响应归一化是一种在卷积神经网络中常用的规范化技术,特别是在图像处理和计算机视觉任务中。LRN 通过归一化一个局部区域内的响应来增强模型对高频特征的响应,从而模仿生物神经系统中的侧抑制现象。

2. 参数详解

  • input(Tensor):输入的张量。
  • size(int):归一化窗口的大小。
  • alpha(float,默认为0.0001):乘法项的系数。
  • beta(float,默认为0.75):指数项的系数。
  • k(float,默认为1.0):加法项的常数。

3. 工作原理

局部响应归一化在指定的通道窗口范围内工作,通过以下步骤进行归一化处理:

  • 对于每个位置,考虑当前通道及其相邻的 size 个通道。
  • 计算这些通道上的平方和,并乘以一个缩放系数 alpha
  • 将这个和加上常数 k,然后取其 beta 次幂。
  • 使用这个计算得到的值来缩放当前位置的原始响应值。

4. 使用示例

import torch
import torch.nn.functional as F

# 创建一个示例张量
input_tensor = torch.randn(1, 5, 10, 10) # 假设有1个样本,5个通道,每个通道10x10大小

# 应用Local Response Normalization
output_tensor = F.local_response_norm(input_tensor, size=5)

# 输出结果
print("原始张量:", input_tensor)
print("Local Response Normalization处理后的张量:", output_tensor)

在这个示例中,输入张量的每个通道及其相邻通道被用于计算局部响应归一化。 

normalize

torch.nn.functional.normalize 是 PyTorch 框架中的一个函数,用于对输入进行 归一化,即按指定维度对输入执行归一化处理。

1. 函数用途

此函数对输入张量的指定维度进行归一化。归一化是深度学习中常用的数据预处理步骤,它可以改善模型的训练效率和泛化性能。通过归一化,可以确保不同特征或数据点在数值范围和重要性上处于同一水平,从而有助于优化过程。

2. 参数详解

  • input(Tensor):任何形状的输入张量。
  • p(float):范数公式中的指数值,默认为 2,即欧几里得范数。
  • dim(int 或 int元组):要归一化的维度,默认为 1。
  • eps(float):避免除零的小值,默认为 1e-12。
  • out(Tensor,可选):输出张量。如果使用 out,则此操作将不可微分。

3. 工作原理

对于形状为(n_{0},...,n_{dim},...,n_{k}) 的输入张量,沿维度 dim 的每个n_{dim} 元素向量 V 被转换为:

V=\frac{V}{max(||V||_{p},\varepsilon )} 默认情况下,它使用维度 1 上的向量的欧几里得范数进行归一化。

4. 使用示例

import torch
import torch.nn.functional as F

# 创建一个示例张量
input_tensor = torch.randn(4, 3)

# 应用L2归一化
output_tensor = F.normalize(input_tensor, p=2.0, dim=1)

# 输出结果
print("原始张量:", input_tensor)
print("归一化处理后的张量:", output_tensor)

在这个示例中,输入张量的每一行(维度 1 的每个向量)都被归一化,使得每行向量的欧几里得范数为 1。这种归一化技术在数据预处理和特征向量的规范化中非常有用。 

总结 

在这篇博客中,我们探讨了 PyTorch 框架中的多种激活和规范化函数,包括 Tanh、Sigmoid、Hardsigmoid、SiLU、Mish、批量归一化(Batch Norm)、组归一化(Group Norm)、实例归一化(Instance Norm)、层归一化(Layer Norm)、局部响应归一化(Local Response Norm)和标准化(Normalize)。每种函数都具有特定的应用场景和优势,例如 Tanh 和 Sigmoid 适用于平滑激活,Hardsigmoid 为高效计算提供了选项,而 SiLU 和 Mish 则提供复杂的非线性激活。批量归一化、组归一化和实例归一化等规范化技术有助于改善模型的训练效率和泛化性能,特别适合于深度学习模型。通过这些函数的合理应用,可以显著提升神经网络的性能和稳定性。 

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

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

相关文章

蓝桥杯AcWing学习笔记 8-1数论的学习(上)

蓝桥杯 我的AcWing 题目及图片来自蓝桥杯C AB组辅导课 数论(上) 蓝桥杯省赛中考的数论不是很多,这里讲几个蓝桥杯常考的知识点。 欧几里得算法——辗转相除法 欧几里得算法代码: import java.util.Scanner ;public class Main…

大物②练习题解

1.【单选题】关于磁场中磁通量,下面说法正确的是( D) A、穿过闭合曲面的总磁通量不一定为零 B、磁感线从闭合曲面内穿出,磁通量为负 C、磁感线从闭合曲面内穿入,磁通量为正D、穿过闭合曲面的总磁通量一定为零 磁感线从…

(超详细)3-YOLOV5改进-添加SE注意力机制

1、在yolov5/models下面新建一个SE.py文件,在里面放入下面的代码 代码如下: import numpy as np import torch from torch import nn from torch.nn import initclass SEAttention(nn.Module):def __init__(self, channel512,reduction16):super()._…

云渲染的官网地址是什么?

云渲染的官网地址:http://www.xuanran100.com/?ycode1a12 云渲染能把渲染工作从本地移到云端进行,不需要设计师配置高性能电脑,十分方便。目前国内领先的云渲染平台是渲染100,它有以下几个优点:1、使用方便 一键提交渲…

Pandas加载大数据集

Scaling to large datasets — pandas 2.1.4 documentationhttps://pandas.pydata.org/docs/user_guide/scale.html#use-efficient-datatypes官方文档提供了4种方法:只加载需要的列、转化数据类型、使用chunking(转化文件存储格式)、使用Dask…

CXYGZL-程序员工作流,持续迭代升级中

概述 现在开源的工作流引擎,基本都是以BPMN.js为基础的,导致使用门槛过高,非专业人员无法驾驭。本工作流借鉴钉钉/飞书的方式,以低代码方式降低用户使用门槛,即使是普通企业用户也可以几分钟内就能搭建自己的工作流引…

O2066PM无线WIFI6E网卡Windows环境吞吐测试

从2023年开始,除手机外的无线终端设备也逐步向WIFI6/6E进行升级更新,基于802.11ax技术的设备能够进一步满足用户体验新一代Wi-Fi标准时获得优质的性能和覆盖范围。 用户对于WIFI模块,通常会关注WIFI模块的吞吐量,拿到样品之后&am…

详细的二进制安装部署Mysql8.2.0

目录 一、下载版本 二、卸载MariaDB 三、MySQL二进制安装 3.1 创建mysql工作目录: 3.2、上传软件,并解压并改名为app 3.3、修改环境变量 3.4、建立mysql用户和组(如果有可忽略) 3.5、创建mysql 数据目录,日志目录;并修改权…

高级分布式系统-第15讲 分布式机器学习--概念与学习框架

高级分布式系统汇总:高级分布式系统目录汇总-CSDN博客 分布式机器学习的概念 人工智能蓬勃发展的原因:“大” 大数据:为人工智能技术的发展奠定了坚实的物质基础。 大规模机器学习模型:具备超强的表达能力,可以解决…

vue2使用Lottie

文章目录 学习链接1.安装依赖2.创建lottie组件3.在相对应的页面应用4.相关data.json5.测试效果 学习链接 原文链接&#xff1a;lottie在vue中的使用 lottie官网&#xff1a;https://lottiefiles.com/ 1.安装依赖 npm install lottie-web2.创建lottie组件 <template>…

JNPF低代码引擎到底是什么?

最近听说一款可以免费部署本地进行试用的低代码引擎&#xff0c;源码上支持100%源码&#xff0c;提供的功能和技术支持比较完善。借助这篇篇幅我们了解下JNPF到底是什么&#xff1f; JNPF开发平台是一款PaaS服务为核心的零代码开发平台&#xff0c;平台提供了多租户账号管理、主…

短期交易离不开的工具!10日均线在现货白银中的应用

10日均线是一根短期均线&#xff0c;对于做短线交易的现货白银投资者来说&#xff0c;它是一个很好用的工具。下面我们就来讨论一下&#xff0c;在现货白银交易中10日均线的具体应用是什么&#xff1f; 验证趋势。我们可以使用10日均线来验证趋势。由于10日均线是短期均线&…

【51单片机系列】继电器使用

文章来源&#xff1a;《零起点学Proteus单片机仿真技术》。 本文是关于继电器使用相关内容。 继电器广泛应用在工业控制中&#xff0c;通过继电器对其他大电流的电器进行控制。 继电器控制原理图如下。继电器部分包括控制线圈和3个引脚&#xff0c;A引脚接电源&#xff0c;B引…

SD-WAN服务简介及挑选服务商指南

在跨境业务蓬勃发展的今天&#xff0c;越来越多的企业开始采用SD-WAN组网&#xff0c;这项技术不仅能够整合现有基础设施投资&#xff0c;还能以灵活、安全的方式支持跨境办公和访问海外网站。那么&#xff0c;如何为企业选择最适合的SD-WAN服务商呢&#xff1f; 首先&#xff…

RViz成功显示多个机器人模型以及解决显示的模型没有左右轮

RViz显示机器人模型没有左右轮 一、RViz成功显示多个机器人模型机器人模型的左右轮无法显示 一、RViz成功显示多个机器人模型 在RViz中显示多个机器人模型需要设置好几个关键的参数 首先点击Add&#xff0c;找到RobotModel&#xff0c;添加进来 Fixed Frame&#xff1a;选择T…

DirBuster

DirBuster是一款基于字典的Web目录扫描工具&#xff0c;根据用户提供的字典&#xff0c;对目标网站目录进行暴力猜测。 在kali终端中输入dirbuster就可以打开dirbuster图形化页面 功能使用 1.在第一栏填写目标网址 2. 第二栏控制请求包数量&#xff0c;控制扫描速度 3.第三栏…

nRF 5340环境搭建和工具下载(采用vscode最新搭建教程)

1. nRF 5340环境搭建和工具下载 1. 1 软件安装 nRF Connect for Desktop https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop nRF Command Line Tools https://www.nordicsemi.com/Products/Development-tools/nrf-command-line-tools/downl…

el-select中多选回显数据后没法重新选择和更改

<el-form-item label"展示内容" prop"videoId"><el-select class"modal-input" multiple v-model"form.videoId"><el-optionclass"modal-input"v-for"(item) in videoIdTypes":key"item.id&q…

MySQL 多版本并发控制 MVCC

MVCC出现背景 事务的4个隔离级别以及对应的三种异常 读未提交&#xff08;Read uncommitted&#xff09; 读已提交&#xff08;Read committed&#xff09;&#xff1a;脏读 可重复读&#xff08;Repeatable read&#xff09;&#xff1a;不可重复读 串行化&#xff08;Se…

最简单爱心的解析

首先你需要了解爱心代码在直角坐标系的方程 数学知识&#xff1a;x 属于 -1.5 ~ 1.5 y 属于 -1 ~ 1.5 和 高中所学的线性规划 请看代码 #include <math.h> #include <stdlib.h> #include <Windows.h> #include <stdio.h> int main() { …