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

U-Net: Convolutional Networks for BiomedicalImage Segmentation

Abstract

人们普遍认为,深度网络的成功训练需要成千上万的标注训练样本。在本文中,我们提出了一种网络和训练策略,该策略强烈依赖于数据增强,以更有效地利用现有的标注样本。该架构包括一个用于捕获上下文的收缩路径和一个用于实现精确定位的对称扩展路径。我们展示了这样的网络可以通过非常少量的图像进行端到端的训练,并且在ISBI挑战赛中,对于电子显微镜堆栈中神经元结构分割的任务,它的表现优于之前的最佳方法(一个滑动窗口卷积网络)。使用在透射光显微镜图像(相差和微分干涉对比,DIC)上训练的相同网络,我们在2015年ISBI细胞追踪挑战赛的这些类别中以较大优势获胜。此外,该网络速度很快。在一块近期的GPU上,对一个512*512图像进行分割的处理时间不到一秒。

收缩路径:就是常规的卷积网络,它包含重复的2个3x3卷积(无填充卷积),每个跟随ReLU和步长为2的2x2最大池化操作(池化操作即下采样,在每个下采样步骤将特征通道数x2)

拓展路径:每个步骤包含特征图的上采样,然后是2x2卷积(向上卷积,它将特征通道数目减半),与相对应裁剪的收缩路径特征图相连接。和两个3x3卷积,每个跟随ReLU。

1 Introduction

在过去两年中,深度卷积网络在许多视觉识别任务中超越了当时的最先进技术,例如[7,3]。尽管卷积网络已经存在了很长时间[8],但由于可用训练集的大小和所考虑网络的规模,它们的成功受到了限制。Krizhevsky等人[7]的突破是由于在拥有100万训练图像的ImageNet数据集上,对一个具有8层和数百万参数的大型网络进行了监督训练。从那时起,人们已经训练了更大和更深的网络[12]。

卷积网络的典型用途是在分类任务上,其中对图像的输出是一个单一的类别标签。然而,在许多视觉任务中,特别是在生物医学图像处理领域,期望的输出应该包括定位,即应该为每个像素分配一个类别标签。此外,在生物医学任务中,通常无法获得成千上万的训练图像。因此,Ciresan等人[1]在滑动窗口设置中训练了一个网络,通过提供该像素周围的局部区域(patch)作为输入来预测每个像素的类别标签。首先,这个网络可以进行定位。其次,就patch而言,训练数据比训练图像的数量要大得多。由此产生的网络在ISBI 2012年的EM分割挑战赛中以较大优势获胜。

Ciresan等人[1]的方法存在两个主要缺点。首先,由于网络必须为每个图像块单独运行,并且由于重叠的图像块存在大量冗余,因此该方法速度相当慢。其次,定位精度和上下文使用之间存在权衡。较大的图像块需要更多的最大池化层,这会降低定位精度,而较小的图像块则使网络只能看到很少的上下文。更近期的方法[11,4]提出了一个分类器输出,该输出考虑了来自多个层的特征。这样可以同时实现良好的定位和上下文的使用。此外,U-Net模型通过结合收缩-扩展路径和跳跃连接,能够逐渐适应长距离的亲和力,从而在收缩阶段提取高低级特征,而扩展阶段则利用收缩阶段学习到的特征(通过跳跃连接)来重建图像到所需的尺寸。

在本文中,我们基于一个更为优雅的架构——所谓的“全卷积网络”(fully convolutional network)[9]。我们修改并扩展了这个架构,使其能够在只有很少训练图像的情况下工作,并产生更精确的分割结果;参见图1。[9]中的主要思想是通过连续的层来补充通常的收缩网络,其中池化操作被上采样操作所取代。因此,这些层提高了输出的分辨率。为了实现定位,将收缩路径中的高分辨率特征与上采样输出结合起来。然后,一个连续的卷积层可以学习如何基于这些信息组装一个更精确的输出。

在我们的架构中,一个重要的修改是在上采样部分也有大量的特征通道,这允许网络将上下文信息传播到更高分辨率的层。因此,扩展路径与收缩路径或多或少是对称的,形成了一个U形架构。网络没有任何全连接层,并且只使用每个卷积的有效部分,即分割图仅包含输入图像中具有完整上下文的像素。这种策略允许通过重叠-平铺策略(见图2)无缝分割任意大小的图像。为了预测图像边界区域的像素,通过镜像输入图像来推断缺失的上下文。这种平铺策略对于将网络应用于大图像很重要,因为否则分辨率将受到GPU内存的限制。

重叠-平铺策略(overlap-tile strategy)是一种用于处理大尺寸图像的技术,它特别适用于无法一次性加载到内存中的图像。这种策略通过将大图像分割成多个小块(tiles),然后对每个小块进行处理,最后将结果拼接起来,以实现对整个图像的分割。

对于我们的任务来说,由于可用的训练数据非常有限,我们通过在现有的训练图像上应用弹性变形(elastic deformations)来进行过度的数据增强。这使得网络能够学习对这种变形的不变性,而无需在标注的图像集合中看到这些变换。这在生物医学分割中尤其重要,因为变形通常是组织中最常见的变化,并且可以有效地模拟真实变形。数据增强在学习不变性方面的价值已经在Dosovitskiy等人[2]的研究中,在无监督特征学习的范围中得到了证明。

在许多细胞分割任务中,另一个挑战是分离同类接触物体;见图3。为此,我们提出了使用加权损失函数的方法,其中在接触细胞之间的分离背景标签在损失函数中获得较大的权重。这种方法有助于模型更好地学习区分相邻的同类物体,提高分割精度。通过给予这些分离背景标签更高的权重,模型在训练过程中会更加关注这些难以分割的区域,从而在分割时能够更准确地区分接触的细胞。

所得到的网络可以应用于各种生物医学分割问题。在本文中,我们展示了在电子显微镜(EM)堆栈中分割神经元结构的结果(这是ISBI 2012年开始的一项正在进行的比赛),我们超越了Ciresan等人[1]的网络。此外,我们还展示了2015年ISBI细胞追踪挑战赛中,来自光学显微镜图像的细胞分割结果。在这项挑战赛中,我们在两个最具挑战性的二维透射光数据集上以较大优势获胜。

2 Network Architecture

网络架构如图1所示。它由一个收缩路径(左侧)和一个扩展路径(右侧)组成。收缩路径遵循卷积网络的典型架构。它由两个3x3卷积(无填充卷积)的重复应用组成,每个卷积后面跟着一个修正线性单元(ReLU)和一个2x2最大池化操作,步幅为2,用于下采样。在每个下采样步骤中,我们将特征通道的数量翻倍。扩展路径的每一步都包括特征图的上采样,随后是一个2x2卷积(“上卷积”),该卷积将特征通道的数量减半,与收缩路径中相应裁剪的特征图进行拼接,然后是两个3x3卷积,每个卷积后面跟着一个ReLU。由于每次卷积都会丢失边界像素,因此需要进行裁剪。在最后一层,使用1x1卷积将每个64维特征向量映射到所需的类别数。整个网络总共有23个卷积层。

为了实现输出分割图的无缝拼接(参见图2),选择输入平铺尺寸非常重要,以确保所有的2x2最大池化操作都应用于x和y尺寸均为偶数的层。这是因为池化操作会减少特征图的尺寸,如果特征图的尺寸是奇数,那么在经过池化后,特征图的尺寸将不再是对称的,这可能导致在拼接时出现不连续或错位的问题。

左半边:

第一块内容:572-3+1,570-3+1

# 由572*572*1变成了570*570*64
self.conv1_1 = nn.Conv2d(in_channels=1, out_channels=64, kernel_size=3, stride=1, padding=0)
self.relu1_1 = nn.ReLU(inplace=True)
# 由570*570*64变成了568*568*64
self.conv1_2 = nn.Conv2d(64, 64, kernel_size=3, stride=1, padding=0)  
self.relu1_2 = nn.ReLU(inplace=True)

最大池化层:卷积核大小是2*2,步长是2,这样图片大小就可以减半

# 采用最大池化进行下采样,图片大小减半,通道数不变,由568*568*64变成284*284*64
self.maxpool_1 = nn.MaxPool2d(kernel_size=2, stride=2)  

以下的内容与第一块儿内容类似。

右半边:右边部分的卷积层也有四个大层,每个大层经过两个卷积层。

# 接下来实现上采样中的up-conv2*2
self.up_conv_1 = nn.ConvTranspose2d(in_channels=1024, out_channels=512, kernel_size=2, stride=2, padding=0) # 28*28*1024->56*56*512

每个大层经过两个卷积层:

self.conv6_1 = nn.Conv2d(in_channels=1024, out_channels=512, kernel_size=3, stride=1, padding=0)  # 56*56*1024->54*54*512
self.relu6_1 = nn.ReLU(inplace=True)
self.conv6_2 = nn.Conv2d(512, 512, kernel_size=3, stride=1, padding=0)  # 54*54*512->52*52*512
self.relu6_2 = nn.ReLU(inplace=True)

3 Training

输入图像及其相应的分割图用于使用Caffe[6]的随机梯度下降实现来训练网络。由于未填充的卷积操作,输出图像比输入图像小一个恒定的边界宽度。为了最小化开销并最大限度地利用GPU内存,我们倾向于使用大尺寸的输入平铺而不是大批量大小,因此将批量减少到单张图像。相应地,我们使用高动量(0.99),这样先前看到的大量训练样本就能决定当前优化步骤的更新。

计算能量函数的方法,结合像素级的softmax和交叉损失函数,用于图像分割任务中的像素分类。

我们为每个真实分割图预先计算权重图,以补偿训练数据集中某个类别像素的不同频率,并迫使网络学习我们引入的接触细胞之间的小分离边界(参见图3c和d)。分离边界是使用形态学操作计算的。然后计算权重图如下:

在具有许多卷积层和不同网络路径的深度网络中,权重的良好初始化极其重要。否则,网络的某些部分可能会产生过大的激活值,而其他部分则永远不会有贡献。理想情况下,初始权重应该被调整,以便网络中的每个特征图具有大约单位方差。对于具有我们这种架构(交替卷积和ReLU层)的网络,可以通过从一个高斯分布中抽取初始权重来实现这一点,该高斯分布的标准差为 \sqrt{2/N},其中 N表示一个神经元的传入节点数[5]。例如,对于一个3x3的卷积和前一层的64个特征通道,N=9 * 64=576。

3.1 Data Augmentation

数据增强对于在只有少量训练样本可用时教会网络所需的不变性和鲁棒性特性至关重要。对于显微镜图像,我们主要需要平移和旋转不变性,以及对变形和灰度值变化的鲁棒性。特别是对训练样本进行随机弹性变形似乎是用非常少的标注图像训练分割网络的关键概念。我们使用在粗略的 3×3 网格上随机位移向量生成平滑变形。位移是从标准差为10像素的高斯分布中采样得到的。然后使用双三次插值计算每个像素的位移。收缩路径末端的Drop-out层执行进一步的隐式数据增强。

4 Experiments

我们展示了U-Net在三个不同的分割任务中的应用。第一个任务是电子显微镜记录中神经元结构的分割。图2展示了数据集和我们获得的分割结果。我们将完整的结果作为补充材料提供。数据集由ISBI 2012年开始的EM分割挑战赛[14]提供,并且仍然对新的贡献开放。训练数据是一组30张图像(512x512像素),这些图像来自果蝇第一龄幼虫腹神经索(VNC)的连续切片透射电子显微镜。每张图像都配有一个对应的完全标注的真实分割图,用于细胞(白色)和膜(黑色)。测试集是公开可用的,但其分割图是保密的。通过将预测的膜概率图发送给组织者,可以获得评估结果。评估是通过在10个不同的阈值水平上对图进行阈值处理,并计算“变形误差”(warping error)、“兰德误差”(Rand error)和“像素误差”(pixel error)[14]来完成的。

U-Net模型(对输入数据的7个旋转版本取平均)在没有任何进一步的预处理或后处理的情况下,达到了0.0003529的变形误差(这是新的最佳分数,见表1)和0.0382的兰德误差(rand-error)。这表明该模型在处理电子显微镜记录中的神经元结构分割任务时具有很高的准确性和鲁棒性。

这明显优于Ciresan等人[1]的滑动窗口卷积网络结果,他们的最佳提交有0.000420的变形误差和0.0504的Rand误差。就Rand误差而言,在该数据集上唯一表现更好的算法,其使用了应用到Ciresan等人[1]概率图上的针对数据集的非常特定后处理方法。

我们还把U-Net应用于光学显微镜图像中的细胞分割任务。这个分割任务是ISBI细胞追踪挑战赛2014年和2015年[10,13]的一部分。第一个数据集“PhC-U373”包含在聚丙烯酰胺基质上记录的胶质母细胞瘤星形细胞U373细胞,使用的是相差显微镜(参见图4a、b和补充材料)。它包含35张部分标注的训练图像。在这里,我们实现了平均92%的交并比(Intersection over Union,IOU),这显著优于第二好的算法,后者为83%(见表2)。第二个数据集“DIC-HeLa”包含在平坦玻璃上记录的HeLa细胞,使用的是微分干涉对比(DIC)显微镜(参见图3、图4c、d和补充材料)。它包含20张部分标注的训练图像。在这里,我们实现了平均77.5%的IOU,这显著优于第二好的算法,后者为46%。

5 Conclusion

U-Net架构在非常不同的生物医学分割应用中取得了非常好的性能。由于使用了弹性变形的数据增强,它只需要非常少的标注图像,并且在NVidia Titan GPU(6 GB)上只需要非常合理的10小时训练时间。我们提供了完整的基于Caffe[6]的实现和训练好的网络[4]。我们确信U-Net架构可以轻松应用于更多的任务。

相关文章:

U-Net: Convolutional Networks for BiomedicalImage Segmentation

Abstract 人们普遍认为,深度网络的成功训练需要成千上万的标注训练样本。在本文中,我们提出了一种网络和训练策略,该策略强烈依赖于数据增强,以更有效地利用现有的标注样本。该架构包括一个用于捕获上下文的收缩路径和一个用于实…...

28--当路由器开始“宫斗“:设备控制面安全配置全解

当路由器开始"宫斗":设备控制面安全配置全解 引言:路由器的"大脑保卫战" 如果把网络世界比作一座繁忙的城市,那么路由器就是路口执勤的交通警察。而控制面(Control Plane)就是警察的大脑&#xf…...

NHANES指标推荐:DI-GM

文章题目:The relationship between dietary index for gut microbiota and diabetes DOI:10.1038/s41598-025-90854-y 中文标题:肠道菌群膳食指数与糖尿病的关系 发表杂志:Sci Rep 影响因子:1区,IF3.8 发表…...

仓库规划 第32次CCF-CSP计算机软件能力认证

没什么说的暴力枚举 n*n*m 的时间复杂度 题目说选序号小的作为父亲 直接编号前往后输出 遇到合适的就break #include<bits/stdc.h> using namespace std; int n, m; int main() {cin >> n >> m;//n:仓库个数 m:位置编码的维数vector<vector<int>…...

leetcode-代码随想录-哈希表-哈希理论基础

哈希表理论基础 哈希表&#xff1a;或者称为散列表&#xff0c;是根据关键码的值而直接进行访问的数据结构。 哈希法&#xff1a;用于快速判断一个元素是否出现在集合里 哈希函数是⼀种映射关系&#xff0c;根据关键词key&#xff0c;经过⼀定函数关系 f 得到元素的位置。 存…...

《科学》期刊发布新成果:量子计算迎来原子 - 光腔集成新时代

《Error-detected quantum operations with neutral atoms mediated by an optical cavity》 -《Science》 2025.3.21 摘要 光镊&#xff08;optical tweezers&#xff09;束缚的可编程原子阵列已成为量子信息处理&#xff08;quantum information processing&#xff09;和量…...

Spring Boot 与 TDengine 的深度集成实践(一)

引言 在当今数字化时代&#xff0c;数据处理与存储对于各类应用的重要性不言而喻。Spring Boot 作为一款流行的 Java 开发框架&#xff0c;以其快速开发、约定大于配置、内嵌容器等特性&#xff0c;大大提升了 Java 企业级应用的开发效率&#xff0c;降低了开发门槛&#xff0…...

SpringBoot + Netty + Vue + WebSocket实现在线聊天

最近想学学WebSocket做一个实时通讯的练手项目 主要用到的技术栈是WebSocket Netty Vue Pinia MySQL SpringBoot&#xff0c;实现一个持久化数据&#xff0c;单一群聊&#xff0c;支持多用户的聊天界面 下面是实现的过程 后端 SpringBoot启动的时候会占用一个端口&#xff…...

数据结构实验2.3:Josephus问题求解

文章目录 一&#xff0c;问题描述二&#xff0c;基本要求三&#xff0c;算法设计&#xff08;1&#xff09;存储结构设计&#xff08;2&#xff09;算法设计 四&#xff0c;示例代码五&#xff0c;运行效果 一&#xff0c;问题描述 在现实生活以及计算机科学的一些场景中&…...

Ruby语言的代码重构

Ruby语言的代码重构&#xff1a;探索清晰、可维护与高效的代码 引言 在软件开发的过程中&#xff0c;代码的质量直接影响到项目的可维护性、扩展性和整体性能。随着时间的推移&#xff0c;系统的需求变化&#xff0c;代码可能会变得混乱和难以理解&#xff0c;因此&#xff0…...

CAN/FD CAN总线配置 最新详解 包含理论+实战(附带源码)

看前须知&#xff1a;本篇文章不会说太多理论性的内容&#xff08;重点在理论结合实践&#xff09;&#xff0c;顾及实操&#xff0c;应用&#xff0c;一切理论内容支撑都是为了后续实际操作进行铺垫&#xff0c;重点在于读者可以看完文章应用。&#xff08;也为节约读者时间&a…...

杰文字悖论:效率提升的副作用

最近&#xff0c;Deepseek的火爆让我们开始反思一个有趣的现象&#xff1a;杰文斯悖论。这是1856年&#xff0c;经济学家杰文斯提出来的一个有趣的现象&#xff1a;当技术效率提高时&#xff0c;资源的使用量反而会增加&#xff0c;而不是减少。听起来可能有点不可思议。杰文斯…...

AcWing 6118. 蛋糕游戏

贪心 为了方便描述&#xff0c;下面将贝茜和埃尔茜分别称为a、b。 已知蛋糕的数量为偶数个&#xff0c;b每次只能吃左右边界上的蛋糕&#xff0c;a每次操作将两个蛋糕变成一个&#xff0c;发现都会使蛋糕的数量减一&#xff0c;且a先操作将蛋糕数量从偶数变成奇数&#xff0c…...

【前端】【Nuxt3】Nuxt 3 开发中因生命周期理解不足导致的常见错误分类及其解决方案

以下是 Nuxt 3 开发中因生命周期理解不足导致的常见错误分类及其解决方案&#xff0c;以结构化形式呈现&#xff1a; 一、数据获取与异步处理 错误 1&#xff1a;错误使用客户端钩子获取数据 问题&#xff1a;在 onMounted 中获取数据&#xff0c;导致 SSR 失效。示例&#x…...

【kubernetes】BusyBox

目录 1. 说明2. 在 Kubernetes 中的角色2.1 轻量级调试工具2.2 临时容器2.3 网络测试2.4 文件系统检查 3. 为什么选择 BusyBox&#xff1f;4. 常见用法5. 注意事项 1. 说明 1.BusyBox 是一个轻量级、开源的 Linux 工具集&#xff0c;将多种常见的 Unix 工具&#xff08;如 ls、…...

Leetcode——239. 滑动窗口最大值

题解一 思路 第一次做困难的题&#xff0c;确实把我既困住了又难住了&#xff0c;确实自己一点都想不出来。 这个思路&#xff0c;差不多就是&#xff0c;自己定义一个单调队列。 添加的时候&#xff0c;判断是否比队列最后的元素大&#xff0c;如果比它大&#xff0c;就把…...

kubernetes configMap 存储

1.模型 首先会在每一个节点上安装一个叫 agent 端 agent 端要做的作用就是监听当前的目标配置中心的配置选项是否发送更新动作 如果有的话 我的agent 端的话要从远程的配置中心 去下载最新的配置文件 替换我当前的 再去触发nginx实现重载 当然对于后期的运维工程师 如果想去发…...

架构思维:查询分离 - 表数据量大查询缓慢的优化方案

文章目录 Pre引言案例何谓查询分离&#xff1f;何种场景下使用查询分离&#xff1f;查询分离实现思路1. 如何触发查询分离&#xff1f;方式一&#xff1a; 修改业务代码&#xff1a;在写入常规数据后&#xff0c;同步建立查询数据。方式二&#xff1a;修改业务代码&#xff1a;…...

A2DP(Advanced Audio Distribution Profile)是蓝牙协议栈中用于音频传输的一个标准化协议

A2DP&#xff08;Advanced Audio Distribution Profile&#xff09;是蓝牙协议栈中用于音频传输的一个标准化协议&#xff0c;主要用于高质量音频流的无线传输。以下是A2DP协议的详细信息&#xff1a; 定义 A2DP协议允许音源设备&#xff08;Source&#xff0c;简称SRC&#…...

Redisson使用详解

一、Redisson 核心特性与适用场景 Redisson 是基于 Redis 的 Java 客户端&#xff0c;提供分布式对象、锁、集合和服务&#xff0c;简化分布式系统开发。 典型应用场景&#xff1a; 分布式锁&#xff1a;防止重复扣款、超卖控制&#xff08;如秒杀库存&#xff09;。数据共享…...

GraalVM 24 正式发布阿里巴巴贡献重要特性 —— 支持 Java Agent 插桩

作者&#xff1a;林子熠、饶子昊 2025 年 3 月 18 日 Oracle 双箭齐发&#xff0c;正式发布了 JDK 24 和 GraalVM 24&#xff0c;带来了众多新特性。 JDK 24 在性能和安全性方面均有改进&#xff08;特性列表链接见下&#xff09;&#xff0c;其中较大的一处改动是在 JDK 中…...

游戏编程模式学习(编程质量提升之路)

文章目录 前言一、命令模式&#xff08;Command Pattern&#xff09;1.命令模式练习场景I.需求场景 2.解耦命令与执行者3.使用命令对玩家角色和AI的操作进行统一抽象4. 命令模式的撤销实现 二、享元模式1.应用场景2.目的3.实现方式 三、原型模式1.运用场景2.实现方式 四、状态模…...

计算机视觉五大技术——深度学习在图像处理中的应用

深度学习是利用“多层神经网络”实现人工智能的一种方式 计算机视觉&#xff1a;“对图像中的客观对象构建明确而有意义的描述”&#xff0c;识别图片中的含义进行处理 1.图像分类——“图里有狗” 判断整张图片属于哪个类别&#xff0c;判断图片是“猫”还是“狗” 思路&a…...

Mixed Content: The page at https://xxx was loaded over HTTPS

一、核心原因分析 Mixed Content 警告是由于 HTTPS 页面中引用了 HTTP 协议的资源(如脚本、图片、iframe 等),导致浏览器因安全策略阻止加载这些非加密内容。HTTP 资源可能被中间人攻击篡改,破坏 HTTPS 页面的整体安全性。 二、推荐解决方案 1. 强制资源升级为 HTTPS •…...

transforms-pytorch4

数据通常不会直接是机器学习算法可以使用的“最终格式”。我们使用转换&#xff08;transforms&#xff09;来对数据进行处理&#xff0c;使其适合训练。 所有的 TorchVision 数据集都提供了两个参数&#xff1a;transform 用于修改特征&#xff0c;target_transform 用于修改…...

Springboot----@Role注解的作用

Role(BeanDefinition.ROLE_INFRASTRUCTURE) 是 Spring 框架中的一个注解&#xff0c;用于显式标记 Bean 的角色&#xff0c;表明该 Bean 是 Spring 容器内部的基础设施组件&#xff08;如后置处理器、工具类等&#xff09;&#xff0c;而非用户直接使用的业务 Bean。其核心作用…...

SpringBoot项目报错: 缺少 Validation

目录 为什么需要Validation&#xff1f;如何使用Validation&#xff1f; 缺少validation&#xff1f;这不过是代码的一个小小问题&#xff0c;就像被风带走的一片叶子&#xff0c;轻轻一吹就能解决啦&#xff01; 在你的项目中&#xff0c;如果你发现自己需要进行数据验证&…...

MySQL vs MSSQL 对比

在企业数据库管理系统中&#xff0c;MySQL 和 Microsoft SQL Server&#xff08;MSSQL&#xff09;是最受欢迎的两大选择。MySQL 是一款开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;由 MySQL AB 开发&#xff0c;现归属于 Oracle 公司。而 MSSQL 是微…...

预测分析(四):面向预测分析的神经网络简介

文章目录 面向预测分析的神经网络简介神经网络模型1. 基本概念2. 前馈神经网络3. 常见激活函数4. 循环神经网络&#xff08;RNN&#xff09;5. 卷积神经网络&#xff08;CNN&#xff09; MPL结构工作原理激活函数训练方法 基于神经网络的回归——以钻石为例构建预测钻石价格的M…...

实战交易策略 篇十四:江南神鹰捕捉热点和熊市生存交易策略

文章目录 系列文章捕捉热点是股市最大的掘金术市场温度不低于50是热点产生的必要条件题材的大小和新颖程度决定热点的持续时间和涨幅炒作热点的3个阶段捕捉热点的方法与步骤操作实战案例熊市生存术“熊市最好的做法是离开股市”的说法是一句空话熊市盈利模式:不轻言底部,超跌…...

去中心化衍生品(以Synthetix为例)

去中心化衍生品&#xff08;以Synthetix为例&#xff09; 核心概念 合成资产&#xff08;Synths&#xff09;&#xff1a; 定义&#xff1a;链上追踪现实资产价值的代币化合约&#xff08;如sXAU追踪黄金&#xff0c;iBTC反向追踪比特币&#xff09;。 类型&#xff1a; 正…...

JavaScript重难点突破:事件循环

想了解事件循环&#xff0c;首先要了解js中线程的概念。 宿主环境 在浏览器环境中&#xff0c;js实际上包含了三个部分ECMAScript、DOM&#xff08;文档对象模型&#xff09;、BOM&#xff08;浏览器对象模型&#xff09;&#xff0c;我们最熟悉的js代码指的是ECMAScript这一…...

Python每日一题(15)

Python每日一题2025.4.4 一、题目题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 二、分析三、源代码四、deepseek 一、题目 题目描述 您需要写一种数据结构&#xff0c;来维护一些数&#xff08;都是绝对值 1 0 9 10^9 109 以内的数&#xff09;的集合&#xff0c…...

#SVA语法滴水穿石# (003)关于 sequence 和 property 的区别和联系

在 SystemVerilog Assertions (SVA) 中,sequence 和 property 是两个核心概念,它们既有区别又紧密相关。对于初学者,可能不需要过多理解;但是要想写出复杂精美的断言,深刻理解两者十分重要。今天,我们汇总和学习一下该知识点。 1. 区别 特性sequenceproperty定义描述一系…...

有人DTU使用MQTT协议控制Modbus协议的下位机-含数据库

本文为备忘录&#xff0c;不做太多解释。 DTU型号&#xff1a;G780 服务器&#xff1a;win2018 一。DTU设置 正确设置波特率&#xff0c;进入配置状态&#xff0c;获取当前参数&#xff0c;修改参数&#xff0c;设置并保存所有参数。 1.通道1设置 2.Modbus轮询设置 二&am…...

Smart Link 技术全面解析

1.1 网络冗余技术的演进与需求 1.2 Smart Link 的核心价值与本文目标 第一章 Smart Link 技术概述 2.1 Smart Link 的应用场景与背景 2.2 Smart Link 的基本概念与组网角色 2.3 Smart Link 与传统技术的对比 第二章 Smart Link 工作原理 3.1 Smart Link 组的构成与运行机…...

【学Rust写CAD】30 Alpha256结构体补充方法(alpha256.rs)

源码 impl Alpha256 {#[inline]pub fn alpha_mul(&self, x: u32) -> u32 {let mask 0xFF00FF;let src_rb ((x & mask) * self.0) >> 8;let src_ag ((x >> 8) & mask) * self.0;(src_rb & mask) | (src_ag & !mask)} }代码分析 功能 输…...

提升 Web 性能:使用响应式图片优化体验

在现代 Web 开发中&#xff0c;图片通常占据页面加载的大部分带宽&#xff0c;如何高效管理图片资源直接影响用户体验和性能得分。Google 的 Lighthouse 工具在性能审计中特别强调“使用响应式图片”&#xff08;Uses Responsive Images&#xff09;&#xff0c;旨在确保图片在…...

基于K8s的演示用单机ML服务部署

这是仅用一台机器&#xff08;比如一台MacBook&#xff09;模拟在k8s上部署一个机器学习服务的演示用实例。 项目地址&#xff1a;https://github.com/HarmoniaLeo/Local-K8s-ML-Demo 该实例分为以下几个部分&#xff1a; 使用KerasTensorflow搭建并训练神经网络&#xff0c…...

强化中小学人工智能教育:塑造未来社会的科技基石

在数字化浪潮席卷全球的今天,人工智能(AI)已成为推动社会进步与经济发展的核心力量。面对这一不可逆转的趋势,如何培养具备AI素养与创新能力的下一代,成为各国教育改革的重中之重。辽宁省教育厅近日发布的《关于加强中小学人工智能教育的实施方案》,无疑为我国中小学人工…...

音视频基础(视频的主要概念)

文章目录 **1. 视频码率&#xff08;Bitrate&#xff09;****概念****分类****码率对比** **2. 视频帧率&#xff08;Frame Rate, FPS&#xff09;****概念****常见帧率****帧率 vs. 观感** **3. 视频分辨率&#xff08;Resolution&#xff09;****概念****常见分辨率****分辨率…...

JWT与Session的实战选择-杂谈(1)

JWT与Session的实战选择&#xff1a;从原理到踩坑心得 作为在金融科技领域经历过多次认证方案迭代的开发者&#xff0c;我想分享一些实战经验。这两种方案适用场景各异&#xff0c;选型需慎重考量。 一、本质差异&#xff1a;状态管理方式 Session机制&#xff1a;服务端维护…...

SQL Server安装后 Reporting Services 配置失败

问题现象&#xff1a; 完成 SQL Server 2022 安装后&#xff0c;尝试配置 Reporting Services (SSRS) 时失败&#xff0c;错误提示 “报表服务器数据库配置无效” 或 “无法启动 Reporting Services 服务”&#xff08;错误代码 0x80070005&#xff09;。 快速诊断 检查服务状态…...

操作系统面经(一)

部分参考来自小林coding 线程、进程、协程 进程是操作系统分配资源&#xff08;内存、文件等&#xff09;的基本单位&#xff0c;每个进程独立运行&#xff0c;互相隔离&#xff0c;稳定性高但开销大&#xff1b;线程是CPU调度的基本单位&#xff0c;属于同一进程的多个线程共…...

Qt 中 findChild和findChildren绑定自定义控件

在 Qt 中&#xff0c;findChild 和 findChildren 是两个非常实用的方法&#xff0c;用于在对象树中查找特定类型的子对象。这两个方法是 QObject 类的成员函数&#xff0c;因此所有继承自 QObject 的类都可以使用它们。当您需要查找并绑定自定义控件时&#xff0c;可以按照以下…...

对模板方法模式的理解

对模板方法模式的理解 一、场景1、题目【[来源](https://kamacoder.com/problempage.php?pid1087)】1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 二、不采用模板方法模式1、代码2、问题 三、采用模板方法模式1、代码 四、总结 一、场景 1、题目【来源】 …...

SpringMVC+Spring+MyBatis知识点

目录 一、相关概念 1.关系 2.网页 3.架构 4.URL 5.http 6.https 7.服务器 8.Tomcat 9.Servelet 10.Javaweb作用域对象 11.JSP 二、相关操作 1.RequestDispatcher 2.sendRedirect 3.cookie 4.Session 5.Filter过滤器 6.Listener监听器 7.MVC模型 8.JDBC连接…...

程序化广告行业(58/89):系统架构与广告反作弊深度剖析

程序化广告行业&#xff08;58/89&#xff09;&#xff1a;系统架构与广告反作弊深度剖析 大家好&#xff01;在程序化广告这个充满挑战与机遇的领域&#xff0c;不断学习和探索是保持竞争力的关键。今天&#xff0c;我希望和大家一起学习进步&#xff0c;深入了解程序化广告行…...

一周学会Pandas2 Python数据处理与分析-NumPy简介

锋哥原创的Pandas2 Python数据处理与分析 视频教程&#xff1a; 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili NumPy&#xff08;Numerical Python&#xff09;是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩…...

第二十七章:Python-Aquarel库与多种主题库结合实现Matplotlib美化

资源绑定附上完整资料供读者参考学习&#xff01; 一、库介绍与安装 1.1 Aquarel库 Aquarel是一个轻量级的Python库&#xff0c;用于简化Matplotlib的样式配置&#xff0c;使数据可视化更加美观和高效。 1.2 Catppuccin库 Catppuccin是一个社区驱动的粉彩主题库&#xff0…...