循环神经网络RNN原理与优化
目录
前言
RNN背景
RNN原理
上半部分:RNN结构及按时间线展开图
下半部分:RNN在不同时刻的网络连接和计算过程
LSTM
RNN存在的问题
LSTM的结构与原理
数学表达层面
与RNN对比优势
应用场景拓展
从简易但严谨的代码来看RNN和LSTM
RNN
LSTM
前言
绕循环神经网络(RNN)、注意力机制(Attention)以及相关模型(如 LSTM、Transformer、BERT、GPT 等)在深度学习中的应用展开,介绍了其原理、结构、算法流程和实际应用场景。
RNN背景
RNN 产生的原因:深度神经网络(DNN)在处理输入时,每个输入之间相互独立,无法处理序列信息。然而在自然语言处理(NLP)和视频处理等任务中,需要考虑输入元素之间的关联性,因此引入 RNN。以 NLP 中的词性标注任务为例,需处理单词序列才能准确标注词性,仅单独理解每个单词是不够的。
RNN 的结构与公式:RNN 在结构上引入了循环层,其隐藏层状态St不仅取决于当前输入Xt,还与上一时刻的隐藏层状态相关。具体公式为
输出
这样的结构使RNN网络能够对序列信息进行处理
RNN原理
上半部分:RNN结构及按时间线展开图
RNN结构:
输入层(Input Layer):标记为“x”,接收输入数据。
隐藏层(Hidden Layer):标记为“s”,是RNN的核心部分,包含循环连接。图中显示了权重矩阵“U”(连接输入层和隐藏层)和“W”(隐藏层的循环连接)(输入层的)。
输出层(Output Layer):标记为“o”,通过权重矩阵“V”与隐藏层相连(输出层的),产生最终输出。
按时间线展开:
将RNN在时间维度上展开,展示了不同时刻(t-1, t, t+1)的网络状态。每个时刻都有输入x_t、隐藏层状态s_t和输出o_t。权重矩阵“U”、“W”和“V”在不同时刻保持不变,体现了RNN在时间上共享参数的特性。
下半部分:RNN在不同时刻的网络连接和计算过程
t-1时刻:
展示了隐藏层状态s的向量形式,s=[s1, s2, ..., sn],其中每个元素代表隐藏层的一个神经元状态。权重矩阵“W”连接了t-1时刻的隐藏层神经元。
t时刻:
输入层:输入向量X=[x1, x2, ..., xm],其中m是输入维度。
隐藏层:通过权重矩阵“U”接收输入层的信息,并通过权重矩阵“W”接收t-1时刻的隐藏层状态信息。图中显示了隐藏层的计算过程,即
,
其中f是激活函数。
输出层:根据隐藏层状态S_t,通过权重矩阵“V”计算输出
,
其中g是输出层的激活函数。
LSTM
LSTM(Long - Short - Term Memory,长短期记忆网络)是为解决传统循环神经网络(RNN)存在的问题而设计的。
RNN存在的问题
RNN有两个主要问题。一是短期记忆问题,当处理足够长的序列时,它难以将早期时间步的信息传递到后期。比如处理一段文本进行预测时,可能会遗漏开头的重要信息。二是梯度消失问题,在反向传播过程中,梯度随着时间反向传播而缩小。当梯度值变得极小,对神经网络权重更新的贡献就很小,导致早期的层停止学习,这也使得RNN在处理长序列时容易遗忘之前的信息。
LSTM的结构与原理
输入:
门:
当前时刻的输出及保存当前细胞状态(传递给下一个‘细胞’):

LSTM通过引入“细胞状态(cell state)”和“门(gate)”机制来解决上述问题:
细胞状态:就像一条传送带,在整个网络中运行,它可以在序列的不同时间步之间传递信息,使得LSTM能够处理长序列而不容易丢失早期信息。
门:
遗忘门(forget gate):决定从细胞状态中丢弃哪些信息。它读取当前输入和上一时刻隐藏状态,输出一个0 - 1之间的值,1表示“完全保留”,0表示“完全丢弃”。
输入门(input gate):确定要在细胞状态中存储哪些新信息。它包含一个sigmoid层来决定更新哪些值,以及一个tanh层来创建新的候选值向量,这些候选值可能会被添加到细胞状态中。
输出门(output gate):确定LSTM的输出。它首先通过sigmoid层决定细胞状态的哪些部分将被输出,然后将细胞状态通过tanh层(将值映射到 - 1到1之间),并将其与sigmoid层的输出相乘,得到最终的输出。
通过这些机制,LSTM能够更好地处理长序列数据,有选择性地记忆和遗忘信息,有效克服了RNN的短期记忆和梯度消失问题,这也是LSTM在后续的一些自然语言处理、语音识别等领域得到广泛应用的主要原因。
数学表达层面
遗忘门计算:
,其中W_f是权重矩阵,[h_{t - 1},x_t]是上一时刻隐藏状态和当前输入的拼接(‘细胞’传递),b_f是偏置项(截距),sigma是sigmoid激活函数,输出值在0 - 1之间,决定从细胞状态中遗忘的信息比例。
输入门计算:
确定更新值比例,
生成候选值向量,二者后续用于更新细胞状态。
细胞状态更新:
,是逐元素相乘,即结合遗忘门输出、上一时刻细胞状态、输入门输出和候选值向量来更新细胞状态。
输出门计算:
决定输出比例,
得到最终隐藏状态输出。
与RNN对比优势
长期依赖处理:RNN受限于梯度消失难以保持长期依赖,LSTM通过门控机制控制细胞状态信息流,能有效保存和传递长距离信息,比如在处理长篇小说文本时,可记住开头人物关系等信息用于后续情节理解和生成。
学习效率:RNN因梯度问题早期层学习困难,LSTM通过门控灵活控制信息流动,更高效学习,在训练时间和收敛速度上表现更好,在语音识别任务中,可更快学习到语音序列中的特征模式。
应用场景拓展
自然语言处理:除常见的文本生成、机器翻译、情感分析,在文本摘要提取中,能抓住长文本关键信息;在命名实体识别中,准确识别不同类型实体。
时间序列预测:在金融领域,预测股票价格、汇率等波动;在能源领域,预测电力负荷、能源消耗等,利用其对时间序列中长短期信息的捕捉能力提高预测准确性。
视频处理:分析视频帧序列,用于动作识别、视频内容理解与生成,如判断视频中人物动作类别,生成符合逻辑的视频字幕等。
从简易但严谨的代码来看RNN和LSTM
通过pytorch框架来定义只有一个’细胞‘的RNN和LSTM,进一步理解这两个网络的架构的应用
RNN
import torch
import torch.nn as nn# 定义RNN模型
class SimpleRNN(nn.Module):def __init__(self, input_size, hidden_size, num_layers, output_size):super(SimpleRNN, self).__init__()
self.hidden_size = hidden_size
self.num_layers = num_layers
self.rnn = nn.RNN(input_size, hidden_size, num_layers, batch_first=True)
self.fc = nn.Linear(hidden_size, output_size)def forward(self, x):
h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(x.device)
out, _ = self.rnn(x, h0)
out = self.fc(out[:, -1, :])return out# 示例参数
input_size = 10
hidden_size = 20
num_layers = 1
output_size = 5
batch_size = 3
seq_length = 8# 创建输入数据
x = torch.randn(batch_size, seq_length, input_size)# 实例化RNN模型
model = SimpleRNN(input_size, hidden_size, num_layers, output_size)# 前向传播
output = model(x)
print(output.shape)
说明:
定义了一个简单的SimpleRNN类继承自nn.Module。在构造函数中,初始化了 RNN 层和全连接层。nn.RNN指定了输入维度input_size、隐藏层维度hidden_size、层数num_layers,并设置batch_first=True表示输入数据的形状为(batch_size, seq_length, input_size)。
forward方法中,首先初始化隐藏状态h0,然后将输入数据x和初始隐藏状态传入 RNN 层,获取输出out。最后将 RNN 最后一个时间步的输出传入全连接层得到最终输出。
LSTM
import torch
import torch.nn as nn# 定义LSTM模型
class SimpleLSTM(nn.Module):def __init__(self, input_size, hidden_size, num_layers, output_size):super(SimpleLSTM, self).__init__()
self.hidden_size = hidden_size
self.num_layers = num_layers
self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True)
self.fc = nn.Linear(hidden_size, output_size)def forward(self, x):
h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(x.device)
c0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(x.device)
out, _ = self.lstm(x, (h0, c0))
out = self.fc(out[:, -1, :])return out# 示例参数
input_size = 10
hidden_size = 20
num_layers = 1
output_size = 5
batch_size = 3
seq_length = 8# 创建输入数据
x = torch.randn(batch_size, seq_length, input_size)# 实例化LSTM模型
model = SimpleLSTM(input_size, hidden_size, num_layers, output_size)# 前向传播
output = model(x)
print(output.shape)
说明:
1.定义了SimpleLSTM类,同样继承自nn.Module。构造函数中初始化了 LSTM 层和全连接层,nn.LSTM的参数设置与 RNN 类似。
2.forward方法里,除了初始化隐藏状态h0,还初始化了细胞状态c0,然后将输入x、h0和c0传入 LSTM 层,获取输出out,最后经全连接层得到最终结果。
相关文章:
循环神经网络RNN原理与优化
目录 前言 RNN背景 RNN原理 上半部分:RNN结构及按时间线展开图 下半部分:RNN在不同时刻的网络连接和计算过程 LSTM RNN存在的问题 LSTM的结构与原理 数学表达层面 与RNN对比优势 应用场景拓展 从简易但严谨的代码来看RNN和LSTM RNN LSTM 前言 绕循环神经…...
Redis常见数据结构及其在项目中用法
Redis 可以使用 String 数据类型和 INCR 命令来统计访问量。 以下是在 Redis 控制台中统计访问量的示例: 设置计数器: SET page_views 0这将创建一个名为 page_views 的键,并将其初始值设置为 0。如果该键已经存在,则会覆盖其值。…...
DeepSeek 基础使用文档介绍
目录 1. 简介 2. 安装与验证 安装 验证安装 3. 基础用法 3.1 数据搜索 3.2 数据预处理 3.3 机器学习优化 4. 进阶用法 4.1 并行计算 4.2 高级搜索功能 4.3 自定义数据处理管道 4.4 提问功能 5. 文档和代码分析 5.1 文档解析 5.2 代码分析 6. 实际案例 案例描…...
微信小程序(uni)+蓝牙连接+Xprint打印机实现打印功能
1.蓝牙列表实现,蓝牙设备展示,蓝牙连接 <template><view class"container"><view class"container_top"><view class"l">设备名称</view><view class"r">{{state.phoneNam…...
数仓搭建(hive):DWB层(基础数据层)
维度退化: 通过减少表的数量和提高数据的冗余来优化查询性能。 在维度退化中,相关的维度数据被合并到一个宽表中,减少了查询时需要进行的表连接操作。例如,在销售数据仓库中,客户信息、产品信息和时间信息等维度可能会被合并到一…...
Mybatis的#{}和${}
#{}:预编译语句,用?对参数位置进行一个占位的操作,在数据库生成一个模版,等待后续填充.也可以推测出#在生成模版后的性能是比$快的. ${}:即时语句,提前的吧参数填充进去,在MySQL里就是一个完整的SQL语句. 填充逻辑不同 #{}会给String类型的参数自动的加上双引号,而${}则是直…...
@Transactional 嵌套,内层抛异常,外层用 try-catch 捕获但实际事务却回滚了
1. 内层事务传播行为为 Propagation.REQUIRED 且设置了回滚标记 虽然外层捕获了异常,但内层事务在抛出异常时可能已经标记了整个事务需要回滚。在 Spring 中,当内层事务传播行为为 Propagation.REQUIRED 时,它和外层事务属于同一个逻辑事务。…...
在实时大数据处理中如何平衡延迟和吞吐量
在实时大数据处理中,平衡延迟和吞吐量是一个至关重要的挑战。以下是一些实用的策略和技巧,有助于在这两者之间找到最佳平衡点: 一、技术层面的平衡策略 并行处理: 通过同时处理多个任务来提高吞吐量。在实时大数据处理环境中&am…...
vue学习六
十三 路由 安装 Vue Router | Vue.js 的官方路由 vue3安装vue-router 4版本;vue2安装vue-router 3版本。 测试使用vue3,命令不带版本号默认安装4。 npm install vue-router4 使用 定义 定义文件:src\router\index.ts import {createRouter,crea…...
【Content-Type详解、Postman中binary格式、json格式数据转原始二进制流等】
Content-Type详解、Postman中binary格式、json格式数据转原始二进制流等 背景:postman中如何使用binary格式上传文件 Content-TypeContent-Type的格式由三部分组成:以下是一些常见的Content-Type示例: Postman中 binary格式定义:用…...
K8S下redis哨兵集群使用secret隐藏configmap内明文密码方案详解
#作者:朱雷 文章目录 一、背景环境及方案说明1.1、环境说明1.2、方案一:使用配置文件设置密码1.3、方案二:使用args 的命令行传参设置密码 二、redis secret configmap deployment参考2.1 创建secret-redis.yaml参考2.2 修改configmap配置参…...
插槽slot
在 Vue 中,插槽(slot)主要用于实现父组件向子组件传递内容,是一种典型的父传子的方式 元素是一个插槽出口 (slot outlet),标示了父元素提供的插槽内容 (slot content) 将在哪里被渲染。 默认插槽 在外部没有提供任何…...
BFS 解决 FloodFill 算法(典型算法思想)—— OJ例题算法解析思路
目录 一、733. 图像渲染 - 力扣(LeetCode) 算法代码: 算法思路 基础参数 函数入口 检查条件 初始化 BFS BFS 填充过程 返回结果 复杂度分析 总结 二、200. 岛屿数量 - 力扣(LeetCode) 算法代码:…...
8 SpringBootWeb案例(上): 查询【分页功能(分页插件)】、删除、新增、修改
文章目录 前言:SpringBootWeb案例1. 准备工作1.1 需求&环境搭建1.1.1 需求说明1.1.2 环境搭建1.2 开发规范1.2.1 开发规范-REST(不强求非要这种风格,传统风格有时候更方便)1.2.2 开发规范-统一响应结果和异常处理1.2.3 开发流程2. 部门管理2.1 查询部门2.1.1 原型和需求…...
Docker 部署 Dify:轻松集成 Ollama 和 DeepSeek
1 Ollama的安装及使用 1.1 什么是Ollama? Ollama 是一个用于本地部署和运行大型语言模型的框架。 Ollama 的作用包括: 本地模型运行:Ollama 允许在本地机器上运行大型语言模型(如 LLaMA、DeepSeek 等),无…...
深入解析MySQL索引:本质、分类、选择及使用原则
一、索引的本质 索引,作为数据库中的一种核心数据结构,其本质在于通过改变数据结构来加快查询效率。可以将索引理解为数据库中的一种“目录”或“路标”,它帮助数据库系统快速定位到需要查询的数据行,从而大大提高数据检索的速度…...
MYSQL的第一次
目录 前情提要 题目解析 连接并使用数据库 创建employees表 创建orders表? 创建invoices表?? ?查看建立的表 前情提要 需要下载mysql并进行配置,建议下载8.0.37,详情可见MySQL超详细安装配置教程(亲测有效)_mysql安装教程-CSDN博客 题目解析…...
机器学习笔记——常用损失函数
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本笔记介绍机器学习中常见的损失函数和代价函数,各函数的使用场景。 热门专栏 机器学习 机器学习笔记合集 深度学习 深度学习笔记合集 文章目录 热门…...
谷粒商城学习笔记-13-配置git-ssh-配置代码免密提交
安装配置 git 1 、下载 git : https://git-scm.com 下载git客户端,右键桌面Git GUI/bash Here。进入bash 2 、配置 git ,进入 git bash # 配置用户名 git config --global user.name "username" //(名字,随意写)# …...
51单片机学习——静态数码管显示
1. 数码管介绍 LED数码管:数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“8”字型的器件。 2. 数码管引脚定义 LED的阴极连接到一个端口上是共阴极连接,称为共阴极数码管。LED的阳极连接到一个端口上是共阳极连接&…...
Qt5 C++ TcpSocket 如何判断是服务主动断开tcp socket连接?
文章目录 实现思路示例代码代码解释主要功能和用法注意事项 在 Qt 5.9.9 的 C 开发中,使用 QTcpSocket 时,要判断是服务端主动断开 TCP Socket 连接,可以通过处理 QTcpSocket 的 disconnected 信号,结合 QTcpSocket 的状态以及…...
UEFI Spec 学习笔记---9 - Protocols — EFI Loaded Image
本节定义EFI_LOADED_IMAGE_PROTOCOL和 EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL。这些协议分别描述了已加载到内存中的映像,并指定了PE/COFF映像通过EFI引导服务LoadImage()加载 时使用的设备路径。这些描述包括 load image 的源、映像在内存中的当前位置、为image分…...
Deepseek 与 ChatGPT:AI 浪潮中的双子星较量
引言 在人工智能飞速发展的当下,AI 语言模型成为了人们关注的焦点。Deepseek 与 ChatGPT 作为其中的佼佼者,各自展现出独特的魅力,引领着 AI 技术的发展潮流。今天,就让我们深入探讨这两款模型,看看它们在 AI 领域中是…...
open-webui安装
docker安装openwebui 拉取镜像 docker pull ghcr.io/open-webui/open-webui:maindocker images启动 docker run -d -p 8346:8080 --name open-webui ghcr.io/open-webui/open-webui:maindocker ps查看端口占用 lsof -i:8346访问地址 http://ip:port http://127.0.0.1:8346...
docker 安装jenkins
使用docker 容器安装jenkins比较方便,但是细节比较重要,这里实战安装了一遍,可用: 拉取最新的jenkins镜像 docker pull jenkins/jenkins 如果没有翻墙的话,可以会有下面的报错: Error response from dae…...
前端利器:DateUtils 日期时间工具深度剖析
序言 在前端开发中,日期和时间的处理是一个常见且重要的任务。从格式化日期展示到复杂的日期计算,每一个环节都需要精确和高效的代码支持。今天,我们就来深入探讨一个精心打造的前端日期时间工具类 DateUtils,它涵盖了从基础的日…...
Denoising Diffusion Restoration Models论文解读
论文要点 恢复的线性逆问题可以使用预训练的DDPM完成:1. 将降质矩阵使用SVD,得到分解矩阵;2. 使用分解矩阵将图像投影到降质类型间共享的谱空间;3. 谱空间中执行DDPM。 评价 同Track的方法同样很多,比如后续的DDNM、…...
【Windows API】SetFilePointerEx函数用法介绍
目录 一、函数概述 二、函数原型与参数解析 1. hFile(文件句柄) 2. liDistanceToMove(移动距离) 3. lpNewFilePointer(新指针位置) 4. dwMoveMethod(移动基准点) 三、返回值与…...
uniapp uni.request重复请求处理
类似这种切换tab时,如果操作很快并且网络不太好,就出现数据错乱,在网上查了一圈,有一个使用uview拦截处理的,但是原生uni.requse没有找到详细的解决办法,就查到使用 abort 方法,我自己封装了一个…...
unity学习47:寻路和导航,unity2022后版本如何使用 Navmesh 和 bake
目录 1 寻路和导航对移动的不同 1.1 基础的移动功能 1.1.1 基础移动 1.1.2 智能导航寻路 1.1.3 智能导航寻路还可以 2 如何实现这个效果? 2.1 通过地图网格的形式 2.1.1 警告信息 the static value has been deprecated的对应搜索 2.1.2 新的navigation ba…...
Windows安装node.js详细教程
一、什么是node.js Node.js 是一个基于 Chrome V8 引擎的javascript运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。 Node 是一个让 JavaScript 运行在服务端的开发平台,它让javascript成为与PHP、Python等服务端语言平起平坐的脚步语言。 由 Rya…...
大模型领域常见的专业术语和关键词及简要解释
现在大语言模型非常火热,特别是deepseek,想要了解、学习、应用、设计开发大模型,则我们需要先知道大模型邻域都包含哪些方面,以及在大模型领域的各个方面,都有哪些常见的专业术语和关键词。 以下我们从大模型领域的模型架构、训练方法到优化技术、应用和伦理问题等多个方…...
单细胞转录组画小提琴VlnPlot只显示需要类型细胞
探序基因肿瘤研究院 整理 在R语言中,单细胞转录组数据画小提琴图中,我们如果想只展示出需要的特定细胞类型,可以把这需要展示的细胞类型单独构建成一个Seurat对象,再画图。 例如我们在Seurat对象中的meta.data表格中,…...
UE 播放视频
一.UI播放视频 1.导入视频文件至工程文件夹 2.文件夹内右健选择Media -> File Meida Source创建testFileMeidaSource文件。 编辑FilePath为当前视频 3.右键->Media->Media Player 创建testMediaPlayer文件 4.右键创建testMediaTexture。编辑MediaPlayer设置testMedia…...
当pcie设备变化时centos是否会修改网络设备的名称(AI回答)
当pcie设备变化时centos是否会修改网络设备的名称 在CentOS(以及其他基于Linux的操作系统)中,网络接口的命名通常遵循特定的规则,尤其是在使用PCIe设备(如网络适配器)时。网络接口的命名通常基于设备的物理…...
SpringSecurity基于配置方法控制访问权限:MVC匹配器、Ant匹配器
Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。在 Spring Security 中,可以通过配置方法来控制访问权限。认证是实现授权的前提和基础,在执行授权操作前需要明确目标用户,只有明确目标用户才能明确它所具备的角色和权…...
《养生》(二)
一、基础生活调整 1.作息规律 固定每天7-8小时睡眠,尽量22:30前入睡,晨起后拉开窗帘晒太阳5分钟,调节生物钟 2.饮食优化 三餐定时,每餐细嚼慢咽20次以上,优先吃蔬菜和蛋白质(如鸡蛋、豆腐&#x…...
本地部署MindSearch(开源 AI 搜索引擎框架),然后上传到 hugging face的Spaces——L2G6
部署MindSearch到 hugging face Spaces上——L2G6 任务1 在 官方的MindSearch页面 复制Spaces应用到自己的Spaces下,Space 名称中需要包含 MindSearch 关键词,请在必要的步骤以及成功的对话测试结果当中 实现过程如下: 2.1 MindSearch 简…...
STM32 看门狗
目录 背景 独立看门狗(IWDG) 寄存器访问保护 窗口看门狗(WWDG) 程序 独立看门狗 设置独立看门狗程序 第一步、使能对独立看门狗寄存器的写操作 第二步、设置预分频和重装载值 第三步、喂狗 第四步、使能独立看门狗 喂狗…...
Ansys Motor-CAD:热分析
您好,汽车迷: 在这篇博客中,我将讨论如何使用 Ansys Motor-CAD 中的热物理模型对 IPM 电机进行热分析。我展示了可以应用的各种冷却系统,并演示了一些计算方法,包括稳态、简单瞬态和占空比。 热物理和设置 选择热物理…...
Swagger 转 Word 技术方案
项目概述 本项目旨在提供一种便捷的工具,将 Swagger API 文档转换为 Word 文档,方便开发人员和团队进行文档管理和分享。通过简单的配置和操作,用户可以快速生成包含 API 接口信息、请求参数、返回参数等内容的 Word 文档。 技术架构 本项目基于 Java 开发,采用 Spring …...
对CSS了解哪些?
CSS(Cascading Style Sheets,层叠样式表)是用来描述HTML文档外观和布局的语言。以下是对CSS的常见了解范围: 1. CSS 基础 选择器:如通用选择器 (*)、类型选择器、类选择器 (.class)、ID选择器 (#id)、后代选择器、伪类…...
使用 Docker-compose 部署 MySQL
使用 Docker Compose 部署 MySQL 本文将详细指导如何使用 docker-compose 部署 MySQL,包括基本配置、启动步骤、数据持久化以及一些高级选项。通过容器化部署 MySQL,你可以快速搭建一个隔离的数据库环境,适用于开发、测试或小型生产场景。 关…...
【C语言】指针(5)
前言:上篇文章的末尾我们使用了转移表来解决代码冗余的问题,那我们还有没有什么办法解决代码冗余呢?有的这就是接下来要说的回调函数。 往期文章: 指针1 指针2 指针3 指针4 文章目录 一,回调函数二,qsort实现快速排序1…...
go~为什么会有json.Number这种类型存在
解决 JSON 数值类型的不确定性 在 JSON 格式里,数值类型没有明确区分整数和浮点数,一个数值可能是整数(如 123),也可能是浮点数(如 123.45)。而在 Go 语言中,整数(如 in…...
Jmeter连接数据库、逻辑控制器、定时器
Jmeter直连数据库 直接数据库的使用场景 直连数据库的关键配置 添加MYSQL驱动Jar包 方式一:在测试计划面板点击“浏览”按钮,将你的JDBC驱动添加进来 方式二:将MySQL驱动jar包放入到lib/ext目录下,重启JMeter 配置数据库连接信…...
DeepSeek智能测试助手:分类+推理+导出一站式工具
前言 测试开发工程师在日常工作中需要处理大量测试文档,并且这些文档需要被高效分类、清洗和管理,同时结合强大的 AI 推理能力(如 DeepSeek 模型)进行智能化处理和分析。为此,我们开发了一款基于 PyQt5 的 GUI 工具&a…...
20250220找回Ubuntu22.04中丢失的文件管理器
20250220找回Ubuntu22.04中丢失的文件管理器 2025/2/20 18:05 在Ubuntu20.04.6中 生产服务器上 强制安装deb安装包的时候,把 桌面显示搞丢了。 Ubuntu的桌面用得少,但是没有还是挺不方便的,一通操作,桌面回来了。还是有很多/不少功…...
IMX6ULL的公板的以太网控制器(MAC)与物理层(PHY)芯片(KSZ8081RNB)连接的原理图分析(包含各引脚说明以及工作原理)
目录 什么叫以太网?它与因特网有何区别?公板实现以太网的原理介绍(MII/RMII协议介绍)公板的原理图下载地址公板中IMX6ULL处理器与MAC(以太网控制器)有关的原理图IMX6ULL处理器的MAC引脚说明1. **ENET1_TX_DATA0**2. **ENET1_TX_DATA1**3. **ENET1_TX_EN*…...
一周学会Flask3 Python Web开发-request请求对象与url传参
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili request请求对象封装了从客户端发来的请求报文信息,我们可以从中获取所有数据。 request对象包含的常用属性&…...