吴恩达深度学习——卷积神经网络实例分析
内容来自https://www.bilibili.com/video/BV1FT4y1E74V,仅为本人学习所用。
文章目录
- LeNet-5
- AlexNet
- VGG-16
- ResNets
- 残差块
- 1*1卷积
LeNet-5

- 输入层:输入为一张尺寸是 32 × 32 × 1 32×32×1 32×32×1的图像,其中 32 × 32 32×32 32×32是图像的长和宽, 1 1 1表示通道数。
- 第一层卷积:
- 卷积核参数:卷积核大小为 5 × 5 5×5 5×5,步长 s = 1 s = 1 s=1,卷积核数量 n c = 6 n_c = 6 nc=6。
- 输出尺寸计算:根据公式 n H = ⌊ n H i n − f + 1 s ⌋ n_H=\lfloor\frac{n_{H_{in}} - f + 1}{s}\rfloor nH=⌊snHin−f+1⌋, n W = ⌊ n W i n − f + 1 s ⌋ n_W=\lfloor\frac{n_{W_{in}} - f + 1}{s}\rfloor nW=⌊snWin−f+1⌋( n H i n n_{H_{in}} nHin、 n W i n n_{W_{in}} nWin为输入特征图的高和宽, f f f为卷积核尺寸, s s s为步长),这里 n H i n = n W i n = 32 n_{H_{in}}=n_{W_{in}} = 32 nHin=nWin=32, f = 5 f = 5 f=5, s = 1 s = 1 s=1,则 n H = ⌊ 32 − 5 + 1 1 ⌋ = 28 n_H=\lfloor\frac{32 - 5 + 1}{1}\rfloor = 28 nH=⌊132−5+1⌋=28, n W = ⌊ 32 − 5 + 1 1 ⌋ = 28 n_W=\lfloor\frac{32 - 5 + 1}{1}\rfloor = 28 nW=⌊132−5+1⌋=28。所以输出特征图尺寸为 28 × 28 × 6 28×28×6 28×28×6。
- 第一层平均池化:
- 池化核参数:池化核大小 f = 2 f = 2 f=2,步长 s = 2 s = 2 s=2。
- 输出尺寸计算: n H = ⌊ 28 − 2 + 1 2 ⌋ = 14 n_H=\lfloor\frac{28 - 2 + 1}{2}\rfloor = 14 nH=⌊228−2+1⌋=14, n W = ⌊ 28 − 2 + 1 2 ⌋ = 14 n_W=\lfloor\frac{28 - 2 + 1}{2}\rfloor = 14 nW=⌊228−2+1⌋=14。输出特征图尺寸为 14 × 14 × 6 14×14×6 14×14×6。
- 第二层卷积:
- 卷积核参数:卷积核大小为 5 × 5 5×5 5×5,步长 s = 1 s = 1 s=1,卷积核数量 n c = 16 n_c = 16 nc=16。
- 输出尺寸计算: n H = ⌊ 14 − 5 + 1 1 ⌋ = 10 n_H=\lfloor\frac{14 - 5 + 1}{1}\rfloor = 10 nH=⌊114−5+1⌋=10, n W = ⌊ 14 − 5 + 1 1 ⌋ = 10 n_W=\lfloor\frac{14 - 5 + 1}{1}\rfloor = 10 nW=⌊114−5+1⌋=10。输出特征图尺寸为 10 × 10 × 16 10×10×16 10×10×16。
- 第二层平均池化:
- 池化核参数:池化核大小 f = 2 f = 2 f=2,步长 s = 2 s = 2 s=2。
- 输出尺寸计算: n H = ⌊ 10 − 2 + 1 2 ⌋ = 5 n_H=\lfloor\frac{10 - 2 + 1}{2}\rfloor = 5 nH=⌊210−2+1⌋=5, n W = ⌊ 10 − 2 + 1 2 ⌋ = 5 n_W=\lfloor\frac{10 - 2 + 1}{2}\rfloor = 5 nW=⌊210−2+1⌋=5。输出特征图尺寸为 5 × 5 × 16 5×5×16 5×5×16,将其展平后神经元数量为 5 × 5 × 16 = 400 5×5×16 = 400 5×5×16=400。
- 全连接层:
- 第一个全连接层有 120 120 120个神经元,连接展平后的 400 400 400个神经元。
- 第二个全连接层有 84 84 84个神经元,连接第一个全连接层的 120 120 120个神经元。
- 输出层:通过Softmax函数输出 10 10 10个类别的概率分布,用于分类任务。
AlexNet

- 输入层:输入图像尺寸为 227 × 227 × 3 227×227×3 227×227×3,其中 227 × 227 227×227 227×227是图像的长和宽, 3 3 3表示通道数。
- 第一层卷积:
- 卷积核:卷积核大小为 11 × 11 11×11 11×11,步长 s = 4 s = 4 s=4,卷积核数量 n c = 96 n_c = 96 nc=96。
- 输出尺寸:根据公式 n H = ⌊ n H i n − f + 1 s ⌋ n_H=\lfloor\frac{n_{H_{in}} - f + 1}{s}\rfloor nH=⌊snHin−f+1⌋, n W = ⌊ n W i n − f + 1 s ⌋ n_W=\lfloor\frac{n_{W_{in}} - f + 1}{s}\rfloor nW=⌊snWin−f+1⌋( n H i n n_{H_{in}} nHin、 n W i n n_{W_{in}} nWin为输入特征图的高和宽, f f f为卷积核尺寸, s s s为步长),可得 n H = ⌊ 227 − 11 + 1 4 ⌋ = 55 n_H=\lfloor\frac{227 - 11 + 1}{4}\rfloor = 55 nH=⌊4227−11+1⌋=55, n W = ⌊ 227 − 11 + 1 4 ⌋ = 55 n_W=\lfloor\frac{227 - 11 + 1}{4}\rfloor = 55 nW=⌊4227−11+1⌋=55。所以输出特征图尺寸为 55 × 55 × 96 55×55×96 55×55×96。
- 第一层最大池化:
- 池化核:池化核大小为 3 × 3 3×3 3×3,步长 s = 2 s = 2 s=2。
- 输出尺寸: n H = ⌊ 55 − 3 + 1 2 ⌋ = 27 n_H=\lfloor\frac{55 - 3 + 1}{2}\rfloor = 27 nH=⌊255−3+1⌋=27, n W = ⌊ 55 − 3 + 1 2 ⌋ = 27 n_W=\lfloor\frac{55 - 3 + 1}{2}\rfloor = 27 nW=⌊255−3+1⌋=27。输出特征图尺寸为 27 × 27 × 96 27×27×96 27×27×96。
- 第二层卷积:
- 卷积核:卷积核大小为 5 × 5 5×5 5×5,填充 p p p为“same”(保证输出尺寸与输入相同),卷积核数量 n c = 256 n_c = 256 nc=256。
- 输出尺寸:当使用“same”填充时,输出尺寸与输入相同,即 27 × 27 × 256 27×27×256 27×27×256。
- 第二层最大池化
- 池化核:池化核大小为 3 × 3 3×3 3×3,步长 s = 2 s = 2 s=2。
- 输出尺寸: n H = ⌊ 27 − 3 + 1 2 ⌋ = 13 n_H=\lfloor\frac{27 - 3 + 1}{2}\rfloor = 13 nH=⌊227−3+1⌋=13, n W = ⌊ 27 − 3 + 1 2 ⌋ = 13 n_W=\lfloor\frac{27 - 3 + 1}{2}\rfloor = 13 nW=⌊227−3+1⌋=13。输出特征图尺寸为 13 × 13 × 256 13×13×256 13×13×256。
- 第三 - 五层卷积:
这三层卷积核大小均为 3 × 3 3×3 3×3,填充均为“same”,卷积核数量分别为 384 384 384、 384 384 384、 256 256 256。每层输出特征图尺寸均保持为 13 × 13 × 13×13× 13×13×相应通道数。 - 第三层最大池化
- 池化核:池化核大小为 3 × 3 3×3 3×3,步长 s = 2 s = 2 s=2。
- 输出尺寸: n H = ⌊ 13 − 3 + 1 2 ⌋ = 6 n_H=\lfloor\frac{13 - 3 + 1}{2}\rfloor = 6 nH=⌊213−3+1⌋=6, n W = ⌊ 13 − 3 + 1 2 ⌋ = 6 n_W=\lfloor\frac{13 - 3 + 1}{2}\rfloor = 6 nW=⌊213−3+1⌋=6。输出特征图尺寸为 6 × 6 × 256 6×6×256 6×6×256。
- 全连接层:
- 展平 6 × 6 × 256 6×6×256 6×6×256的特征图,得到 6 × 6 × 256 = 9216 6×6×256 = 9216 6×6×256=9216个神经元,连接到第一个全连接层( 9216 9216 9216个神经元)。
- 第一个全连接层连接到第二个全连接层( 4096 4096 4096个神经元),第二个全连接层再连接到第三个全连接层( 4096 4096 4096个神经元)。
- 输出层:第三个全连接层连接到输出层,通过Softmax函数输出 1000 1000 1000个类别的概率分布。
AlexNet 与 LeNet - 5 结构类似但规模更大,使用了 ReLU 激活函数。
VGG-16

- 输入层:输入是尺寸为 224 × 224 × 3 224×224×3 224×224×3的图像,其中 224 × 224 224×224 224×224是图像的空间尺寸, 3 3 3表示通道数。
- 卷积层与池化层:
- 第一组:使用 2 2 2个 3 × 3 3×3 3×3、步长为 1 1 1、填充为“same”的卷积核,卷积核数量分别为 64 64 64,输出特征图尺寸为 224 × 224 × 64 224×224×64 224×224×64;接着是最大池化层,池化窗口 2 × 2 2×2 2×2、步长为 2 2 2,输出 112 × 112 × 64 112×112×64 112×112×64的特征图。
- 第二组: 2 2 2个 3 × 3 3×3 3×3、步长为 1 1 1、填充为“same”的卷积核,卷积核数量为 128 128 128,输出 112 × 112 × 128 112×112×128 112×112×128的特征图;再经最大池化( 2 × 2 2×2 2×2,步长 2 2 2),输出 56 × 56 × 128 56×56×128 56×56×128的特征图。
- 第三组: 3 3 3个 3 × 3 3×3 3×3、步长为 1 1 1、填充为“same”的卷积核,卷积核数量为 256 256 256,输出 56 × 56 × 256 56×56×256 56×56×256的特征图;经最大池化( 2 × 2 2×2 2×2,步长 2 2 2),输出 28 × 28 × 256 28×28×256 28×28×256的特征图。
- 第四组: 3 3 3个 3 × 3 3×3 3×3、步长为 1 1 1、填充为“same”的卷积核,卷积核数量为 512 512 512,输出 28 × 28 × 512 28×28×512 28×28×512的特征图;经最大池化( 2 × 2 2×2 2×2,步长 2 2 2),输出 14 × 14 × 512 14×14×512 14×14×512的特征图。
- 第五组: 3 3 3个 3 × 3 3×3 3×3、步长为 1 1 1、填充为“same”的卷积核,卷积核数量为 512 512 512,输出 14 × 14 × 512 14×14×512 14×14×512的特征图;经最大池化( 2 × 2 2×2 2×2,步长 2 2 2),输出 7 × 7 × 512 7×7×512 7×7×512的特征图。
- 全连接层:
- 展平 7 × 7 × 512 7×7×512 7×7×512的特征图后连接到第一个全连接层,有 4096 4096 4096个神经元。
- 第一个全连接层连接到第二个全连接层,同样有 4096 4096 4096个神经元。
- 输出层:通过Softmax函数输出 1000 1000 1000个类别的概率分布。
VGG - 16结构简洁,通过堆叠多个小尺寸卷积核来加深网络。
ResNets
传统神经网络在加深层数时可能会出现梯度消失或梯度爆炸,以及性能退化(训练误差和测试误差增加)等问题。看看如下常规计算:

对于输入为 a [ l ] a^{[l]} a[l],经过两层处理后得到输出 a [ l + 2 ] a^{[l + 2]} a[l+2]。每一层由神经元组成, a [ l ] a^{[l]} a[l]先进入第一层得到 a [ l + 1 ] a^{[l + 1]} a[l+1],再进入第二层得到 a [ l + 2 ] a^{[l + 2]} a[l+2] 。计算过程如下:
- 输入 a [ l ] a^{[l]} a[l]首先进行线性变换: z [ l + 1 ] = W [ l + 1 ] a [ l ] + b [ l + 1 ] z^{[l + 1]} = W^{[l + 1]}a^{[l]} + b^{[l + 1]} z[l+1]=W[l+1]a[l]+b[l+1],其中 W [ l + 1 ] W^{[l + 1]} W[l+1]是权重矩阵, b [ l + 1 ] b^{[l + 1]} b[l+1]是偏置项。
- 对线性变换结果 z [ l + 1 ] z^{[l + 1]} z[l+1]应用ReLU激活函数: a [ l + 1 ] = g ( z [ l + 1 ] ) a^{[l + 1]} = g(z^{[l + 1]}) a[l+1]=g(z[l+1]), g g g代表ReLU函数。
- a [ l + 1 ] a^{[l + 1]} a[l+1]再进行第二次线性变换: z [ l + 2 ] = W [ l + 2 ] a [ l + 1 ] + b [ l + 2 ] z^{[l + 2]} = W^{[l + 2]}a^{[l + 1]} + b^{[l + 2]} z[l+2]=W[l+2]a[l+1]+b[l+2] 。
- 对 z [ l + 2 ] z^{[l + 2]} z[l+2]应用ReLU激活函数得到输出: a [ l + 2 ] = g ( z [ l + 2 ] ) a^{[l + 2]} = g(z^{[l + 2]}) a[l+2]=g(z[l+2]) 。
残差块
残差块是一种特殊的神经网络模块,引入了跳跃连接(图中上面的蓝色箭头)机制,使得网络能够学习输入和输出之间的残差映射,而不是直接学习复杂的恒等映射。

对于普通网络,理论上(绿色曲线)随着层数增加,训练误差应持续降低,但实际上(蓝色曲线),当层数增加到一定程度,训练误差反而上升,出现性能退化问题。
对于残差网络,随着层数增加,训练误差能够持续下降,避免了普通网络中的性能退化问题,使得网络可以更容易地训练更深的层次,解决普通深层神经网络中梯度消失和性能退化等问题。
本网络引入残差块,有:

输入 a [ l ] a^{[l]} a[l],直接到 a [ l + 1 ] a^{[l + 1]} a[l+1]线性函数处的输出。计算过程如下:
- 输入 a [ l ] a^{[l]} a[l]先进行第一次线性变换: z [ l + 1 ] = W [ l + 1 ] a [ l ] + b [ l + 1 ] z^{[l + 1]} = W^{[l + 1]}a^{[l]} + b^{[l + 1]} z[l+1]=W[l+1]a[l]+b[l+1]。
- 对 z [ l + 1 ] z^{[l + 1]} z[l+1]应用ReLU激活函数: a [ l + 1 ] = g ( z [ l + 1 ] ) a^{[l + 1]} = g(z^{[l + 1]}) a[l+1]=g(z[l+1])。
- a [ l + 1 ] a^{[l + 1]} a[l+1]进行第二次线性变换: z [ l + 2 ] = W [ l + 2 ] a [ l + 1 ] + b [ l + 2 ] z^{[l + 2]} = W^{[l + 2]}a^{[l + 1]} + b^{[l + 2]} z[l+2]=W[l+2]a[l+1]+b[l+2] 。
- 跳跃连接(紫色箭头)将 a [ l ] a^{[l]} a[l]与 z [ l + 2 ] z^{[l + 2]} z[l+2]相加,然后对相加结果应用ReLU激活函数得到最终输出: a [ l + 2 ] = g ( z [ l + 2 ] + a [ l ] ) a^{[l + 2]} = g(z^{[l + 2]} + a^{[l]}) a[l+2]=g(z[l+2]+a[l]) 。
1*1卷积

对于一个 6 × 6 × 32 6\times6\times32 6×6×32的张量,经过 1 × 1 × 32 1\times1\times32 1×1×32卷积和激活函数,相当于把32个通道的值相加后填入。 1 × 1 1\times1 1×1卷积从根本上可以看作是32个通道都应用了一个全连接神经网络。
使用大小为 1 × 1 1×1 1×1的卷积核时,当输入通道为1时, 1 × 1 1×1 1×1卷积对原特征的缩放操作;多通道时,对于输入特征图的每个区域,计算该区域与卷积核中的元素之和,还可引入激活函数。

输入为尺寸 28 × 28 × 192 28×28×192 28×28×192的特征图,使用了 32 32 32个 1 × 1 1×1 1×1的卷积核对同一个区域进行卷积操作32次,卷积核大小为 1 × 1 × 192 1×1×192 1×1×192(因为输入通道数是 192 192 192),之后经过ReLU激活函数,输出特征图尺寸为 28 × 28 × 32 28×28×32 28×28×32,空间尺寸( 28 × 28 28×28 28×28)保持不变,通道数从 192 192 192减少到了 32 32 32,说明 1 × 1 1×1 1×1卷积可以在不改变特征图空间大小的情况下,对通道数进行降维调整,减少计算量和模型参数数量 。
相关文章:
吴恩达深度学习——卷积神经网络实例分析
内容来自https://www.bilibili.com/video/BV1FT4y1E74V,仅为本人学习所用。 文章目录 LeNet-5AlexNetVGG-16ResNets残差块 1*1卷积 LeNet-5 输入层:输入为一张尺寸是 32 32 1 32321 32321的图像,其中 32 32 3232 3232是图像的长和宽&…...
LabVIEW的智能电源远程监控系统开发
在工业自动化与测试领域,电源设备的精准控制与远程管理是保障系统稳定运行的核心需求。传统电源管理依赖本地手动操作,存在响应滞后、参数调节效率低、无法实时监控等问题。通过集成工业物联网(IIoT)技术,实现电源设备…...
【自动化办公】批量图片PDF自定义指定多个区域识别重命名,批量识别铁路货物运单区域内容改名,基于WPF和飞桨ocr深度学习模型的解决方案
项目背景介绍 铁路货运企业需要对物流单进行长期存档,以便后续查询和审计。不同的物流单可能包含不同的关键信息,通过自定义指定多个区域进行识别重命名,可以使存档的图片文件名具有统一的规范和明确的含义。比如,将包含货物运单…...
neo4j-在Linux中安装neo4j
目录 切换jdk 安装neo4j 配置neo4j以便其他电脑可以访问 切换jdk 因为我安装的jdk是1.8版本的,而我安装的neo4j版本为5.15,Neo4j Community 5.15.0 不支持 Java 1.8,它要求 Java 17 或更高版本。 所以我需要升级Java到17 安装 OpenJDK 17 sudo yu…...
专业学习|通过案例了解蒙特卡罗模拟实操步骤与含义
一、蒙特卡罗模拟介绍 蒙特卡罗模拟(Monte Carlo Simulation)是一种基于随机采样的数值计算方法,用于解决具有不确定性或复杂概率分布的问题。其核心思想是通过多次随机抽样来逼近系统的行为或目标函数的真实值,进而对系统进行评估…...
数据结构【链栈】
基于 C 实现链表栈:原理、代码与应用 一、引言 栈就是一个容器,可以当场一个盒子,只能一个一个拿,一个一个放,而且是从上面放入。 有序顺序栈操作比较容易【会了链栈之后顺序栈自然明白】,所以我们这里只…...
《数据可视化新高度:Graphy的AI协作变革》
在数据洪流奔涌的时代,企业面临的挑战不再仅仅是数据的收集,更在于如何高效地将数据转化为洞察,助力决策。Graphy作为一款前沿的数据可视化工具,凭借AI赋能的团队协作功能,为企业打开了数据协作新局面,重新…...
rust安装笔记
安装笔记 安装加速cargo 国内源nightly版本安装其他目标将现有项目迁移到新版本升级 安装加速 export RUSTUP_UPDATE_ROOT"https://mirrors.ustc.edu.cn/rust-static/rustup" export RUSTUP_DIST_SERVERhttps://mirrors.tuna.tsinghua.edu.cn/rustup curl --proto h…...
人工智能|本地部署|ollama+chatbox快速Windows10下部署(初级篇)
一、 前言: 其实早一个月我已经使用过deepseek,并且也在自己的机器上通过ollama部署过,但一直没有太多动力,现在感觉还是的记录一下,省的自己给忘掉了 本文只是简单记录一下ollamaopen-webuichatbox部署通过网盘分享…...
Android Studio 下载安装教程(2024 更新版),附详细图文
今天,为大家带来的是Android Studio 2024更新版的下载安装教程,包含详细图文步骤。 随着 Android Studio 的不断更新,自从引入 Koala 系列后,其版本号的命名规则也发生了变化。以本次更新为例,版本号为 2024.2.1&#…...
【人工智能】通用人工智能 AGI
AGI 是 Artificial General Intelligence 的缩写,中文翻译为通用人工智能。与我们常见的**特定人工智能(Narrow AI)**不同,AGI 是一个更高深、更具野心的目标。 AGI(人工通用智能)的定义 通用人工智能&am…...
Android车机DIY开发之软件篇(九) NXP AutomotiveOS编译
Android车机DIY开发之软件篇(十一) NXP AutomotiveOS编译 Google 在汽车上也提供了用于汽车的 Google 汽车服务(GAS,Google Automotive Service),包含有 Google 地图、应用市场、Google 汽车助理等等。Google 汽车服务同样没有开…...
6.【BUUCTF】[SUCTF 2019]CheckIn
打开题目页面如下 看样子是一道有关文件上传的题 上传一句话木马 显示:非法后缀! 看来.php后缀被过滤了 上传一张带有木马的照片 在文件地址处输入cmd 输入以下代码执行 copy 1.jpg/b4.php/a 5.jpg 最后一行有一句话木马 上传带有木马的图片 但其实…...
在线教程丨YOLO系列10年更新11个版本,最新模型在目标检测多项任务中达SOTA
YOLO (You Only Look Once) 是计算机视觉领域中最具影响力的实时目标检测算法之一,以其高精度与高效性深受业界青睐,广泛应用于自动驾驶、安防监控、医疗影像等领域。 该模型最早于 2015 年由华盛顿大学研究生 Joseph Redmon 发布,开创了将目…...
ES6 变量解构赋值总结
1. 数组的解构赋值 1.1 基本用法 // 基本数组解构 const [a, b, c] [1, 2, 3]; console.log(a); // 1 console.log(b); // 2 console.log(c); // 3// 跳过某些值 const [x, , y] [1, 2, 3]; console.log(x); // 1 console.log(y); // 3// 解构剩余元素 const [first, ...re…...
FreeRTOS学习 --- 中断管理
什么是中断? 让CPU打断正常运行的程序,转而去处理紧急的事件(程序),就叫中断 中断执行机制,可简单概括为三步: 1,中断请求 外设产生中断请求(GPIO外部中断、定时器中断…...
Docker基础以及单体实战
Docker 一、Docker1.1 Docker组成1.2 Dcoker运行图1.3 名称空间Namepace 1.4 docker、Docker compose、kubermetes 二、Docker安装2.1 在线Docker安装2.2 使用官方通用安装脚本2.3 二进制安装Docker三、Docker基础命令3.1 启动类3.2 镜像类3.3 容器类3.4 网络类3.5 Docker comp…...
FFmpeg rtmp推流直播
文章目录 rtmp协议RTMP协议组成RTMP的握手过程RTMP流的创建RTMP消息格式Chunking(Message 分块) rtmp服务器搭建Nginx服务器配置Nginx服务器 librtmp库编译推流 rtmp协议 RTMP(Real Time Messaging Protocol)是由Adobe公司基于Flash Player播放器对应的…...
2025Java面试题超详细整理《微服务篇》
什么是微服务架构? 微服务框架是将某个应用程序开发划分为许多独立小型服务,实现敏捷开发和部署,这些服务一般围绕业务规则进行构建,可以用不同的语言开发,使用不同的数据存储,最终使得每个服务运行在自己…...
Python爬虫-如何正确解决起点中文网的无限debugger
前言 本文是该专栏的第45篇,后面会持续分享python爬虫干货知识,记得关注。 本文以起点中文网为例子,针对起点中文网使用控制台调试出现无限debugger的情况,要如何解决? 针对该问题,笔者在正文将介绍详细而又轻松的解决方法。废话不多说,下面跟着笔者直接往下看正文详细…...
IIC重难点-2
一、光环境传感器硬件原理图 二、i.MX6ull I2C控制器介绍 1. Inter IC (I2C)提供标准I2C从机和主机的功能。I2C被设计为兼容标准NXP I2C总线协议。 2. I2C是一种双线双向串行总线,它提供了一种简单有效的数据交换方法,最大限度地减少了…...
优化数据库结构
MySQL学习大纲 一个好的数据库设计方案对于数据库的性能尝尝会起到事倍功半的效果,合理的数据库结构不仅使数据库占用更小的磁盘空间,而且使查询速度更快。数据库结构的设计需要考虑数据冗余、查询和更新速度、字段的数据类型是否合理等多方面的内容&…...
用Argo的netCDF文件计算海洋混合层和障碍层深度并通过M_Map工具包画出全球海洋MLD和BL的分布图
用Argo的netCDF文件计算海洋混合层和障碍层深度并通过M_Map工具包画出全球海洋MLD和BL的分布图。 P.S.: 1.需先安装m_map的toolbox。2.混合层及障碍层的定义参考Clment de Boyer Montegut, et al. “”Mixed layer depth over the global ocean: An examination of profile dat…...
2. K8S集群架构及主机准备
本次集群部署主机分布K8S集群主机配置主机静态IP设置主机名解析ipvs管理工具安装及模块加载主机系统升级主机间免密登录配置主机基础配置完后最好做个快照备份 2台负载均衡器 Haproxy高可用keepalived3台k8s master节点5台工作节点(至少2及以上)本次集群部署主机分布 K8S集群主…...
OpenAI 实战进阶教程 - 第六节: OpenAI 与爬虫集成实现任务自动化
爬虫与 OpenAI 模型结合,不仅能高效地抓取并分析海量数据,还能通过 NLP 技术生成洞察、摘要,极大提高业务效率。以下是一些实际工作中具有较高价值的应用案例: 1. 电商价格监控与智能分析 应用场景: 电商企业需要监控…...
51单片机07 串口通信
串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信。51单片机内部自带UART(Universal Asynchronous Recei…...
Java进阶——IO 流
文章目录 Java进阶——IO 流 1、File 类的使用 1.1、File 常用构造器1.2、路径分隔符1.3、File 的常用方法 2、IO流原理及流的分类 2.1、IO流原理2.2、流的分类 3、IO流的体系结构4、节点流 4.1、FileReader 读入数据的操作4.2、FileWriter 写出数据的操作4.3、FileReader 和 …...
我的鸿蒙学习之旅:探索万物互联的新宇宙
在科技飞速发展的今天,操作系统领域的创新层出不穷。华为鸿蒙系统的出现,犹如一颗璀璨的新星,照亮了万物互联的未来之路。怀着对新技术的好奇与渴望,我踏上了学习鸿蒙的征程,这段经历充满了挑战与惊喜,也让…...
Java 引入和使用jcharset,支持UTF-7字符集
一、背景说明 Java标准库不直接支持UTF-7字符集,但通过我们可以使用第三方库jcharset方便地处理UTF-7编码的数据。 二、引入说明 JDK8及以下版本,我们将jcharset.jar并将其放到${JAVA_HOME}/jre/lib/ext/下即可完成引入。 JDK17及以后版本,对…...
如何在Window计算机本地部署DeepSeek-r1模型
如何在Window计算机本地部署DeepSeek-r1模型 安装Ollama配置GPU加速(可选)部署DeepSeek-r1模型1.5b模型效果演示 本文介绍了如何使用Ollama在Windows计算机本地部署DeepSeek-r1模型。 安装Ollama 访问Ollama官网下载对应操作系统的安装包(支…...
