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

深度学习500问——Chapter12:网络搭建及训练(3)

文章目录

12.3.5 Caffe有哪些接口

12.4 网络搭建有什么原则

12.4.1 新手原则

12.4.2 深度优先原则

12.4.3 卷积核size一般为奇数

12.4.4 卷积核不是越大越好

12.5 有哪些经典的网络模型值得我们去学习的

12.6 网络训练有哪些技巧

12.6.1 合适的数据集

12.6.2 合适的预处理方法

12.6.3 网络的初始化

12.6.4 小规模数据训练

12.6.5 设置合理Learning Rate

12.6.6 损失函数


12.3.5 Caffe有哪些接口

Caffe深度学习框架支持多种编程接口,包括命令行、Python和Matlab,下面将介绍如何使用这些接口。

1. Caffe Python接口

Caffe提供 Python 接口,即Pycaffe,具体实现在caffe、python文件夹内。在Python代码中import caffe,可以load models(导入模型)、forward and backward (前向、反向迭代)、handle IO(数据输入输出)、visualize networks(绘制net)和instrument model solving(自定义优化方法)。所有的模型数据、计算参数都是暴露在外、可供读写的。   

(1)caffe.Net 是主要接口,负责导入数据、校验数据、计算模型。   

(2)caffe.Classsifier 用于图像分类。   

(3)caffe.Detector 用于图像检测。   

(4)caffe.SGDSolver 是露在外的 solver 的接口。   

(5)caffe.io 处理输入输出,数据预处理。   

(6)caffe.draw 可视化 net 的结构。   

(7)caffe blobs 以 numpy ndarrys 的形式表示,方便而且高效。

2. Caffe MATLAB接口

MATLAB接口(Matcaffe)在 caffe/matlab 目录的 caffe 软件包。在 matcaffe 的基础上,可将Caffe整合到MATLAB代码中。   

MATLAB接口包括:

(1)MATLAB 中创建多个网络结构。   

(2)网络的前向传播(Forward)与反向传播(Backward)计算。   

(3)网络中的任意一层以及参数的存取。   

(4)网络参数保存至文件或从文件夹加载。   

(5)blob 和 network 形状调整。   

(6)网络参数编辑和调整。   

(7)创建多个 solvers 进行训练。   

(8)从solver 快照(Snapshots)恢复并继续训练。   

(9)访问训练网络(Train nets)和测试网络(Test nets)。   

(10)迭代后网络交由 MATLAB 控制。   

(11)MATLAB代码融合梯度算法。

3. Caffe命令行接口

命令行接口 Cmdcaffe 是 Caffe 中用来训练模型、计算得分以及方法判断的工具。Cmdcaffe 存放在 caffe/build/tools 目录下。

caffe train

caffe train 命令用于模型学习,具体包括:   

(1)caffe train 带 solver.prototxt 参数完成配置。   

(2)caffe train 带 snapshot mode_iter_1000.solverstate 参数加载 solver snapshot。   

(3)caffe train 带 weights 参数 model.caffemodel 完成 Fine-tuning 模型初始化。

caffe test

caffe test 命令用于测试运行模型的得分,并且用百分比表示网络输出的最终结果,比如 accuracyhuoloss 作为其结果。测试过程中,显示每个 batch 的得分,最后输出全部 batch 的平均得分值。

caffe time

caffe time 命令用来检测系统性能和测量模型相对执行时间,此命令通过逐层计时与同步,执行模型检测。

参考文献: 1.深度学习:Caffe之经典模型讲解与实战/ 乐毅,王斌

12.4 网络搭建有什么原则

12.4.1 新手原则

刚入门的新手不建议直接上来就开始搭建网络模型。比较建议的学习顺序如下:

  • 1.了解神经网络工作原理,熟悉基本概念及术语。
  • 2.阅读经典网络模型论文+实现源码(深度学习框架视自己情况而定)。
  • 3.找数据集动手跑一个网络,可以尝试更改已有的网络模型结构。
  • 4.根据自己的项目需要设计网络。

12.4.2 深度优先原则

通常增加网络深度可以提高准确率,但同时会牺牲一些速度和内存。但深度不是盲目堆起来的,一定要在浅层网络有一定效果的基础上,增加深度。深度增加是为了增加模型的准确率,如果浅层都学不到东西,深了也没效果。

12.4.3 卷积核size一般为奇数

卷积核为奇数有以下好处:

  • 1 保证锚点刚好在中间,方便以 central pixel为标准进行滑动卷积,避免了位置信息发生偏移 。
  • 2 保证在填充(Padding)时,在图像之间添加额外的零层,图像的两边仍然对称。

12.4.4 卷积核不是越大越好

AlexNet中用到了一些非常大的卷积核,比如11×11、5×5卷积核,之前人们的观念是,卷积核越大,感受野越大,看到的图片信息越多,因此获得的特征越好。但是大的卷积核会导致计算量的暴增,不利于模型深度的增加,计算性能也会降低。于是在VGG、Inception网络中,利用2个3×3卷积核的组合比1个5×5卷积核的效果更佳,同时参数量(3×3×2+1=19<26=5×5×1+1)被降低,因此后来3×3卷积核被广泛应用在各种模型中。

12.5 有哪些经典的网络模型值得我们去学习的

提起经典的网络模型就不得不提起计算机视觉领域的经典比赛:ILSVRC .其全称是 ImageNet Large Scale Visual Recognition Challenge.正是因为ILSVRC 2012挑战赛上的AlexNet横空出世,使得全球范围内掀起了一波深度学习热潮。这一年也被称作“深度学习元年”。而在历年ILSVRC比赛中每次刷新比赛记录的那些神经网络也成为了人们心中的经典,成为学术界与工业届竞相学习与复现的对象,并在此基础上展开新的研究。

序号年份网络名称获得荣誉
12012AlexNetILSVRC图像分类冠军
22014VGGNetILSVRC图像分类亚军
32014GoogLeNetILSVRC图像分类冠军
42015ResNetILSVRC图像分类冠军
52017SeNetILSVRC图像分类冠军

1.  AlexNet

  • 论文:ImageNet Classification with Deep Convolutional Neural Networks 
  • 代码实现:tensorflow 
  • 主要特点:

1.第一次使用非线性激活函数ReLU。

2.增加防加过拟合方法:Droupout层,提升了模型鲁棒性。

3.首次使用数据增强。

4.首次使用GPU加速运算。

2. VGGNet

  • 论文:Very Deep Convolutional Networks for Large-Scale Image Recognition 
  • 代码实现:tensorflow 
  • 主要特点:

1.网络结构更深。

2.普遍使用小卷积核。

3. GoogLeNet

  • 论文:Going Deeper with Convolutions 
  • 代码实现:tensorflow 
  • 主要特点:

1.增强卷积模块功能。 主要的创新在于他的Inception,这是一种网中网(Network In Network)的结构,即原来的结点也是一个网络。Inception一直在不断发展,目前已经V2、V3、V4。其中1*1卷积主要用来降维,用了Inception之后整个网络结构的宽度和深度都可扩大,能够带来2-3倍的性能提升。

2.连续小卷积代替大卷积,保证感受野不变的同时,减少了参数数目。

4. ResNet

  • 论文:Deep Residual Learning for Image Recognition 
  • 代码实现:tensorflow 
  • 主要特点:

解决了“退化”问题,即当模型的层次加深时,错误率却提高了。

5. SeNet

  • 论文:Squeeze-and-Excitation Networks 
  • 代码实现:tensorflow 
  • 主要特点:

提出了feature recalibration,通过引入 attention 重新加权,可以得到抑制无效特征,提升有效特征的权重,并很容易地和现有网络结合,提升现有网络性能,而计算量不会增加太多。

CV领域网络结构演进历程:

ILSVRC挑战赛历年冠军:

此后,ILSVRC挑战赛的名次一直是衡量一个研究机构或企业技术水平的重要标尺。 ILSVRC 2017 已是最后一届举办.2018年起,将由WebVision竞赛(Challenge on Visual Understanding by Learning from Web Data)来接棒。因此,即使ILSVRC挑战赛停办了,但其对深度学习的深远影响和巨大贡献,将永载史册。

12.6 网络训练有哪些技巧

12.6.1 合适的数据集

1 没有明显脏数据(可以极大避免Loss输出为NaN)。

2 样本数据分布均匀。

12.6.2 合适的预处理方法

关于数据预处理,在Batch Normalization未出现之前预处理的主要做法是减去均值,然后除去方差。在Batch Normalization出现之后,减均值除方差的做法已经没有必要了。对应的预处理方法主要是数据筛查、数据增强等。

12.6.3 网络的初始化

网络初始化最粗暴的做法是参数赋值为全0,这是绝对不可取的。因为如果所有的参数都是0,那么所有神经元的输出都将是相同的,那在back propagation的时候同一层内所有神经元的行为也是相同的,这可能会直接导致模型失效,无法收敛。吴恩达视频中介绍的方法是将网络权重初始化均值为0、方差为1符合的正态分布的随机数据。

12.6.4 小规模数据训练

在正式开始训练之前,可以先用小规模数据进行试练。原因如下:

  • 1 可以验证自己的训练流程对否。
  • 2 可以观察收敛速度,帮助调整学习速率。
  • 3 查看GPU显存占用情况,最大化batch_size(前提是进行了batch normalization,只要显卡不爆,尽量挑大的)。

12.6.5 设置合理Learning Rate

  • 1 太大。Loss爆炸、输出NaN等。
  • 2 太小。收敛速度过慢,训练时长大大延长。
  • 3 可变的学习速率。比如当输出准确率到达某个阈值后,可以让Learning Rate减半继续训练。

12.6.6 损失函数

损失函数主要分为两大类:分类损失和回归损失:

1. 回归损失:

  • 均方误差(MSE 二次损失 L2损失) 它是我们的目标变量与预测值变量差值平方。
  • 平均绝对误差(MAE L1损失) 它是我们的目标变量与预测值变量差值绝对值。 关于MSE与MAE的比较。MSE更容易解决问题,但是MAE对于异常值更加鲁棒。更多关于MAE和MSE的性能,可以参考L1vs.L2 Loss Function

2.分类损失:

  • 交叉熵损失函数。 是目前神经网络中最常用的分类目标损失函数。
  • 合页损失函数 合页损失函数广泛在支持向量机中使用,有时也会在损失函数中使用。缺点:合页损失函数是对错误越大的样本施以更严重的惩罚,但是这样会导致损失函数对噪声敏感。

相关文章:

深度学习500问——Chapter12:网络搭建及训练(3)

文章目录 12.3.5 Caffe有哪些接口 12.4 网络搭建有什么原则 12.4.1 新手原则 12.4.2 深度优先原则 12.4.3 卷积核size一般为奇数 12.4.4 卷积核不是越大越好 12.5 有哪些经典的网络模型值得我们去学习的 12.6 网络训练有哪些技巧 12.6.1 合适的数据集 12.6.2 合适的预…...

Android使用DevRing框架搭建数据库实体类以及使用

一、引用DevRing依赖 //导入DevRing依赖implementation com.ljy.ring:devring:1.1.8创建数据库表的依赖implementation org.greenrobot:greendao:3.2.2 // add libraryimplementation org.greenrobot:greendao-generator:3.0.0 二、修改工程目录下的.idea->gradle.xml文件&…...

高效BUG管理:定级、分类和处理流程

高效BUG管理&#xff1a;定级、状态跟踪与处理全流程 前言一、BUG的定义二、BUG的定级三、BUG的状态四、BUG的处理流程1. BUG报告2. BUG确认3. BUG修复4. BUG验证5. BUG关闭 五、常见问题与解决方案六、总结 前言 在测试工作中&#xff0c;BUG的定级和分类是一个重要环节&…...

服务器数据恢复—raid5热备盘同步失败导致阵列崩溃如何恢复数据?

服务器存储数据恢复环境&故障&#xff1a; 某品牌DS5300存储&#xff0c;包含一个存储机头和多个磁盘柜&#xff0c;组建了多组RAID5磁盘阵列。 某个磁盘柜中的一组RAID5阵列由15块数据盘和1块热备硬盘组建。该磁盘柜中的某块硬盘离线&#xff0c;热备盘自动替换并开始同步…...

Ubuntu iso 镜像下载 步骤截图说明

Ubuntu镜像下载&#xff0c;在这个网址&#xff1a; Enterprise Open Source and Linux | Ubuntu 步骤如下图所示&#xff1a; 1、登入网址 2、点击Get Ubuntu 3、点击Download Ubuntu Desktop 后续点击Downloadload 24.04 LTS直接下载就行 如果需要下载其它版本&#xf…...

git拉取gitee项目到本地

git安装等不做赘述。 根据需要选择不同操作 1.只是单纯拉取个项目&#xff0c;没有后续的追踪等操作 不需要使用git init初始化本地文件夹 新建一个文件夹用于存储项目&#xff0c;右键选择 git bash here 会出现命令行窗口 如果像我一样&#xff0c;只是拉取个项目作业&…...

力扣42.接雨水

力扣42.接雨水 前后缀数组 对于每个一个位置 求其前面最高高度pre_max[i] max(pre_max[i-1] , h[i])和后面最高高度suf_max[i] max(suf_max[i1] , h[i])当前i处的水容量 为min(pre_max[i] , suf_max[i]) - h[i] class Solution {public:int trap(vector<int>& …...

国产数据库与MYSQL兼容性?开发应该怎么选择?

国产数据库主要包括以下几种&#xff1a; TiDB&#xff1a;由 PingCAP 公司研发设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库&#xff0c;兼容 MySQL&#xff0c;支持无限的水平扩展&#xff0c;具备强一致性和高可用等特性。 华为GaussDB…...

Spring框架中Bean的生命周期

Bean的生命周期通常指的是从创建到初始化&#xff0c;经过一系列的流程&#xff0c;最终销毁的过程。只不过&#xff0c;在Spring框架中&#xff0c;Bean的生命周期是由Spring IOC容器来管理的。在Spring中&#xff0c;我们定义Bean时&#xff0c;也可以自己指定初始化和销毁的…...

从零到一学FFmpeg:avformat_alloc_output_context2 函数详析与实战

文章目录 前言一、函数原型二、功能描述三、使用场景四、AVFormatContext 结构体五、代码实例 前言 avformat_alloc_output_context2 是FFmpeg库中的一个函数&#xff0c;用于为输出多媒体文件初始化一个AVFormatContext结构体。这个函数在开始输出音频、视频数据到文件之前被…...

Lua 绕过元表

Lua 绕过元表&#xff0c;直接访问 table 的字段。 绕过元表 rawset(table, index, value)&#xff0c;在不触发元方法的情况下&#xff0c;设置 table[index] 的值为 value。 rawget(table, index)&#xff0c;在不触发元方法的情况下&#xff0c;获取 table[index] 的值。…...

pip方法总结(极简快速掌握)

pip是Python的包管理工具&#xff0c;它允许用户从PyPI等源安装和管理额外的库和依赖。以下是关于pip使用方法的详细总结&#xff0c;同时附上代码演示&#xff1a; 一、pip的基本功能 安装包&#xff1a;使用pip install 包名命令可以安装指定的Python包。例如&#xff0c;要…...

aigc基础概念(一)

目录 一、AI 1.1、基本术语 1、Artificial Intelligence (AI) —— 人工智能 2、Generative AI —— 生成性人工智能 3、Machine Learning (ML) —— 机器学习 4、Deep Learning (DL) —— 深度学习 5、Large Language Model (LLM) —— 大型语言模型 6、Transformers …...

USB学习——12、usb初始化和插拔驱动软件流程大致框架描述

usb初始化和插拔驱动软件流程大致框架描述&#xff1a; 当设备启动时&#xff0c;usb的主机控制器设备驱动&#xff08;HCD&#xff09;和 usb的root hub会先初始化&#xff1a; 1、xhci-plat.c主机控制器驱动那里&#xff0c;__usb_creat_hcd创建usb主机数据结构&#xff0c;m…...

【ARMv8/ARMv9 硬件加速系列 2.4 -- ARM NEON Q寄存器与V寄存器的关系】

文章目录 Q 与 V 的关系向量寄存器 v 的使用赋值操作寄存器赋值总结Q 与 V 的关系 在ARMv8/v9架构中,v寄存器和q寄存器实际上是对相同的物理硬件资源的不同称呼,它们都是指向ARM的SIMD(单指令多数据)向量寄存器。这些寄存器用于高效执行向量和浮点运算,特别是在多媒体处理…...

Oracle中递归查询(START WITH……CONNECT BY……)

一、基本语法 在Oracle中START WITH……CONNECT BY……一般用来查找存在父子关系的数据&#xff0c;也就是树形结构的数据。 SELECT * FROM TABLE WHERE 条件3 START WITH 条件1 CONNECT BY 条件2;start with [condition]&#xff1a;设置起点&#xff0c;用来限制第一层的数…...

【云原生|K8S系列】如何创建Kubernetes job和Cronjobs 入门指南

本kubernetes教程解释了如何创建kubernetes作业和cronjobs&#xff0c;以及它的基础知识、用例和一些提示和技巧。 什么是Kubernetes Job? Kubernetes job和cronjob是Kubernetes对象&#xff0c;主要用于短期和批处理工作负载。 kubernetes作业对象基本上部署了一个pod&…...

力扣每日一题 6/23 字符串/模拟

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 520.检测大写字母【简单】 题目&#xff1a; 我们定义&#xff0c;在以下…...

Google trend搜索关键词

Google trend地址&#xff1a;https://trends.google.com/trends/?geoUS&hlzh-CN 1、具体的操作步骤如下&#xff1a; 2、Google trend搜索页面如下&#xff1a;...

Unity C#调用Android,IOS震动功能

最近在Unity上需要很原生移动端进行交互&#xff0c; 原理&#xff1a;新建一个android项目&#xff0c;把生成的app module给干掉&#xff0c;然后留下一个vibrationPlugin module&#xff0c;在这个module下写android震动代码&#xff0c;将这个android工程构建出来的 aar移…...

Ruby 注释

Ruby 注释 在编程中&#xff0c;注释是用于解释代码如何工作以及为什么这样编写的重要工具。Ruby作为一种解释型、面向对象的脚本语言&#xff0c;提供了灵活的注释方式&#xff0c;帮助开发者更好地组织和理解代码。本文将详细介绍Ruby中的注释类型、用法以及最佳实践。 Rub…...

C语言入门系列:特殊的main函数和exit函数

文章目录 一&#xff0c;main函数二&#xff0c;exit函数1&#xff0c;exit函数2&#xff0c;atexit()函数2.1 atexit函数的简介2.2 atexit注册的函数一定会被调用吗2.2.1 正常退出测试2.2.2 异常退出测试 一&#xff0c;main函数 一个C程序至少包含一个函数&#xff0c;这个函…...

JAVA复习3

目录 19. 下列关于 do…while 语句和 while 语句的叙述中错误的是&#xff08; C &#xff09; 20. 若有定义 int a9, b6; System.out.println(a > b) 的结果是&#xff08; D &#xff09; 21. 关于接口和抽象类&#xff0c;下列说法正确的是&#xff08;A&#xff09; …...

Oracle共享内存不释放

Oracle数据库使用共享内存来管理其系统全局区&#xff08;SGA&#xff09;和程序全局区&#xff08;PGA&#xff09;。当Oracle数据库的共享内存没有正确释放时&#xff0c;可能会导致数据库启动失败或性能问题。以下是一些可能的原因和解决方法&#xff1a; /dev/shm空间不足&…...

windows cmd中单引号和双引号的问题

文章目录 前言单引号和双引号的用法单引号双引号 示例对比Linux ShellWindows CMD PowerShell中的引号用法结论 前言 这个问题的起因是在windows cmd中运行一个简单的命令 node -e console.log(process)发现没有输出&#xff0c;但是进入node环境后&#xff0c;直接执行conso…...

Nacos 2.x 系列【15】数据源插件支持达梦、Oracel、PostgreSQL......

文章目录 1. 概述2. 持久层机制2.1 固定语句2.2 数据源插件 3. 案例演示3.1 编译已实现插件3.2 自定义插件3.3 数据库初始化3.4 插件引入3.4.1 方式一&#xff1a;引入到源码3.4.2 方式二&#xff1a;插件加载目录 3.5 修改配置3.6 测试 1. 概述 在实际项目开发中&#xff0c;…...

HJ39判断两个IP是否属于同一子网(中)

提示&#xff1a;文章 文章目录 前言一、背景二、 2.1 2.2 总结 前言 接上文HJ39判断两个IP是否属于同一子网 查了下&#xff0c;atoi可以转换负数。 修改成下面的代码 #include <stdio.h> #include <stdlib.h> #include <stdbool.h>bool isTargetSonN…...

渗透测试基础(二) Linux+Win常用命令介绍

1. Linux常用命令 1.1 解压缩相关 1.1.1 tar命令 解包&#xff1a;tar zxvf FileName.tar 打包&#xff1a;tar czvf FileName.tar DirName1.1.2 gz命令 对于.gz格式的解压1&#xff1a;gunzip FileName.gz解压2&#xff1a;gzip -d FileName.gz压缩&#xff1a;gzip FileN…...

手机usb共享网络电脑没反应的方法

适用于win10电脑&#xff0c;安卓手机上可以 开启usb网络共享选择&#xff0c;如果选择后一直跳&#xff0c;让重复选择usb选项的话&#xff0c;就开启 开发者模式&#xff0c;进到 开发者模式 里设置 默认usb 共享网络 选项 &#xff0c;就不会一直跳让你选。 1.先用数据线 连…...

Scrivener v3 解锁版安装教程 (写作辅助软件)

前言 Scrivener&#xff0c;一个多功能的写作软件&#xff0c;被世界各地的作家广泛采用&#xff0c;从小说家到剧本家&#xff0c;再到非小说类作家和学术研究者&#xff0c;它的用户群跨越了广泛的领域&#xff0c;包括学生、法律专业人士、记者和翻译。这个软件非常注重用户…...

Python开发——用什么数据储存结构复杂的数据

在Python中&#xff0c;当需要储存包含不同类型的数据时&#xff0c;可以使用以下几种数据结构&#xff1a; 1. 字典&#xff08;dict&#xff09; 字典是一种非常灵活的数据结构&#xff0c;允许使用键-值对来存储不同类型的数据。 data {"name": "Alice&quo…...

【0-1系列】从0-1快速了解搜索引擎Scope以及如何快速安装使用(下)

前言 近日&#xff0c;社区版家族正式发布V2024.5版本&#xff0c;其中&#xff0c;社区开发版系列重磅发布Scope开发版以及StellarDB开发版。 为了可以让大家更进一步了解产品&#xff0c;本系列文章从背景概念开始介绍&#xff0c;深入浅出的为读者介绍Scope的优势以及能力…...

前端核心框架Vue指令详解

目录 ▐ 关于Vue指令的介绍 ▐ v-text与v-html ▐ v-on ▐ v-model ▐ v-show与v-if ▐ v-bind ▐ v-for ▐ 前言&#xff1a;在学习Vue框架过程中&#xff0c;大家一定要多参考官方API &#xff01; Vue2官方网址https://v2.cn.vuejs.org/v2/guide/ ▐ 关于Vue指令的…...

SD卡无法读取?原因分析与数据恢复策略

一、SD卡无法读取的困境 SD卡作为便携式的存储介质&#xff0c;广泛应用于手机、相机、平板等多种电子设备中。然而&#xff0c;在使用过程中&#xff0c;我们可能会遭遇SD卡无法读取的困扰。当我们将SD卡插入设备时&#xff0c;设备无法识别SD卡&#xff0c;或者虽然识别了SD…...

线程池的工作原理

线程池可以减少创建和销毁线程的次数&#xff0c;从而减少系统资源的消耗。当一个任务&#xff08;Runnable或Callable对象&#xff09;&#xff08;Runnable无返回值&#xff0c;Callable有返回值&#xff09;被提交到线程池时&#xff1a; 一、首先判断核心线程池中的线程是…...

Nikto一键扫描Web服务器(KALI工具系列三十)

目录 1、KALI LINUX 简介 2、Nikto工具简介 3、信息收集 3.1 目标IP&#xff08;服务器) 3.2kali的IP 4、操作实例 4.1 基本扫描 4.2 扫描特定端口 4.3 保存扫描结果 4.4 指定保存格式 4.5 连接尝试 4.6 仅扫描文件上传 5、总结 1、KALI LINUX 简介 Kali Linux 是一…...

全局变量和局部变量

全局变量未初始化&#xff0c;则它的值为0&#xff1b; 局部变量未初始化&#xff0c;则它的值为随机值&#xff1b; 局部变量的作用域是变量所在的局部范围; 全局变量的作用域是整个工程; 生命周期&#xff1a; 变量的生命周期指的是变量从创建到销毁的整个阶段。 局部变量的生…...

[机器学习算法]支持向量机

支持向量机&#xff08;SVM&#xff09;是一种用于分类和回归分析的监督学习模型。SVM通过找到一个超平面来将数据点分开&#xff0c;从而实现分类。 1. 理解基本概念和理论&#xff1a; 超平面&#xff08;Hyperplane&#xff09;&#xff1a;在高维空间中&#xff0c;将数据…...

Springboot应用的信创适配

CentOS7在2024.6.30停止维护后&#xff0c;可替代的Linux操作系统-CSDN博客 全面国产化之路-信创-CSDN博客 信创适配评测-CSDN博客 Springboot应用的信创适配 Springboot应用的信创适配&#xff0c;如上图所示需要适配的很多&#xff0c;从硬件、操作系统、中间件&#xff08…...

TypedDict 解析

TypedDict 解析 文章目录 TypedDict 解析1. 类型安全性2. 可读性3. 可维护性TypedDict 的解决方案没有 TypedDict 会发生什么&#xff1f;使用 TypedDict 的优势 TypedDict 应用场景1. 配置文件解析2. API 数据解析3. 数据库记录表示4. 表单数据验证5. 大型团队协作6. 静态类型…...

Windows11和Ubuntu22双系统安装指南

一、需求描述 台式机电脑&#xff0c;已有Windows11操作系统&#xff0c;想要安装Ubuntu22系统&#xff08;版本任意&#xff09;。其中Windows安装在Nvme固态上&#xff0c;Ubuntu安装在Sata固态上&#xff0c;双盘双系统。开机时使用Grub控制进入哪个系统&#xff0c;效果图…...

Dockerfile-php7.4.33

# 使用一个包含基本编译工具的基础镜像 FROM ubuntu:latestRUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \echo "Asia/Shanghai" > /etc/timezone# 更新包列表并安装必要的编译工具和库 RUN apt-get update && apt-get i…...

如何降低MCU系统功耗?

大家在做MCU系统开发的时候&#xff0c;是否也碰到过降低MCU系统功耗的需求&#xff1f; MCU系统整板功耗是个综合的数据&#xff0c;包括MCU功耗以及外部器件功耗&#xff0c;在此我们主要介绍如何降低MCU的功耗&#xff1a; 可以在满足应用的前提下&#xff0c;降低MCU的运…...

移动端 UI 风格,诠释精致

移动端 UI 风格&#xff0c;诠释精致...

【408考点之数据结构】数组和特殊矩阵的压缩存储

数组和特殊矩阵的压缩存储 在数据结构中&#xff0c;数组是一种基础的数据结构&#xff0c;用于存储相同类型的元素的集合。矩阵则是一个二维数组&#xff0c;常用于表示图像、图形以及数学运算中的系数。随着矩阵的广泛应用&#xff0c;一些特殊类型的矩阵也被引入并得到了有…...

26、matlab多项式曲线拟合:polyfit ()函数

1、前言 在 MATLAB 中,可以使用 polyfit() 函数进行多项式曲线拟合。polyfit() 函数可以拟合一个多项式模型到给定的数据点,从而找到最符合这些数据点的多项式曲线。以下是关于 polyfit() 函数的一些基本说明和示例用法: 语法 p = polyfit(x, y, n) x 和 y 是数据点的横纵…...

VMR,支持30+种编程语言的SDK版本管理器,支持Windows/MacOS/Linux。

官方文档地址&#xff1a;https://docs.vmr.us.kg/ 欢迎安装使用&#xff0c;分享转发&#xff0c;前往github star。 跨平台&#xff0c;支持Windows&#xff0c;Linux&#xff0c;MacOS支持多种语言和工具&#xff0c;省心受到lazygit的启发&#xff0c;拥有更友好的TUI&…...

模板初阶【C++】

文章目录 模板的作用模板的原理模板分为两大类——函数模板和类模板函数模板语法函数模板实例化模板函数的方式模板函数的类型转换既有函数模板又有已经实现的函数&#xff0c;会优先调用哪一个&#xff1f; 类模板语法模板类实例化对象模板类的模板参数可以有缺省值类模板中的…...

搭建Vue的环境

目录 # 开篇 步骤一&#xff0c;准备Vue 的环境 步骤二&#xff0c;下载Vue.js的包 步骤三&#xff0c;创建并打开写前端代码的文件夹 步骤四&#xff0c;在VSCode中引入Vue.js的包 步骤五&#xff0c;创建第一个vue.html Vue其他知识 Vue.config命令 # 开篇 介绍&…...

[学习笔记]-MyBatis-Plus简介

简介 Mybatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 简言之就是对单表的增删改查有了很好的封装。基本不用再单独写sql语句了。目前此类…...

linux中可执行文件在运行过程中为什么不能拷贝覆盖

对于一个普通的文件&#xff0c;假如有两个文件&#xff0c;分别是file和file1&#xff0c;我们使用 cp file1 file的方式使用file1的内容来覆盖file的内容&#xff0c;这样是可以的。 但是对于可执行文件来说&#xff0c;当这个文件在执行的时候&#xff0c;是不能通过cp的方…...

预约停车位app小程序模板

简单的手机预约停车位&#xff0c;在线停车位&#xff0c;预约停车管理小程序页面模板。包含&#xff1a;主页、预约停车、预约管理、地图导航等。 预约停车位app小程序模板...

el-table 树状表格展开及折叠

在工作中&#xff0c;可能需要对树状表格进行全部折叠及全部展开&#xff0c;可采用以下方法&#xff1a; 页面内容如下&#xff1a; <el-table v-if"refTable" :data"list" row-key"id" :tree-props"{children:children,hasChildren…...

鸿蒙项目实战-月木学途:2.自定义底部导航

效果预览 Tabs组件简介 Tabs组件的页面组成包含两个部分&#xff0c;分别是TabContent和TabBar。TabContent是内容页&#xff0c;TabBar是导航页签栏&#xff0c;页面结构如下图所示&#xff0c;根据不同的导航类型&#xff0c;布局会有区别&#xff0c;可以分为底部导航、顶部…...

MySQL84 -- ERROR 1524 (HY000): Plugin ‘msql_native_password‘ is not loaded.

【问题描述】 MySQL 8.4版本&#xff0c;配置用户使用mysql_native_password认证插件验证用户身份&#xff0c;报错&#xff1a; 【解决方法】&#xff08;Windows, MySQL 8.4) 1、修改MySQL配置文件my.ini&#xff0c;在[mysqld]段添加mysql_native_passwordON。 2、管理员…...

golang template模板嵌套语法 为何不能使用变量 底层源码解析

我们都知道在golang的模板语法中&#xff0c;我们可以使用template关键字嵌套其他模块&#xff0c; 如&#xff1a; {{template "模板文件名" .}} 然而&#xff0c;这里的 “模板文件名” 是不能使用变量的&#xff01; 注意这里最后的的 . 这个实际上是templa…...

全球金融观察|“宽松交易”卷土重来,10年期美债收益率跌破4.4%关口

从种种迹象来看,美国经济似乎逐渐失去动能。在上周一季度GDP被下修后,美国再度公布了疲软的经济数据。当地时间6月3日,美国供应管理协会公布的数据显示,5月制造业PMI从4月的49.2降至48.7,连续二个月放缓,不及预期的49.6,新商品订单创下近两年来最大降幅,制造业物价支付…...

型格/飞度無限MUGEN版上市售价9.78万元起

3月7日,广汽本田無限MUGEN热血双核在亚洲规模最大的改装车展“2024深圳国际定制改装汽车展览会”上市。型格無限MUGEN版售价15.79万元起,飞度無限MUGEN版售价9.78万元起。型格/飞度無限MUGEN版是市面少有的量产官改神车,上路合规,配齐玩车迷梦寐以求的無限MUGEN定制套件,每…...

你是懂升级的,全新腾势N7或颠覆30万级纯电市场

23.98万元到32.98万元,随着全新腾势N7在4月1日上市发布,30万纯电市场迎来新一代卷王。作为比亚迪智能化的重磅车型,全新腾势N7主打一个听劝。老款腾势N7有点贵,全新腾势N7直接23.98万起。老款腾势N7前脸不好看,全新腾势N7重新设计。老款腾势N7智能化不够强,全新腾势N7全面…...

Java基础学习:深入解析Java中的位运算符

在Java中&#xff0c;位运算符用于对整数类型的值进行位运算。以下是Java中的位运算符&#xff1a; 位与(&)&#xff1a;两位都为1时&#xff0c;结果为1&#xff0c;否则为0。 位或(|)&#xff1a;两位中有1个为1&#xff0c;结果为1。 位非(~)&#xff1a;位的反&#…...

服务器感染了. rmallox勒索病毒,如何确保数据文件完整恢复?

导言&#xff1a; 近年来&#xff0c;随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显。其中&#xff0c;勒索病毒作为一种严重的网络威胁&#xff0c;对个人和企业数据造成了巨大的威胁。本文将重点介绍.rmallox勒索病毒的特点、传播途径以及应对策略&#xff0c;旨…...

Unity3D 主城角色动画控制与消息触发详解

前言 在游戏开发中&#xff0c;角色动画控制和消息触发是非常重要的一部分&#xff0c;它可以让游戏更加生动和互动。本文将详细介绍如何在Unity3D中实现主城角色动画控制与消息触发。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;大家可以点击进来一起交流一下开…...