【人工智能基础08】卷积神经网络习题:卷积神经网络计算、图像填充、卷积的表达与设计
文章目录
- 1. 卷积核计算
- 2. 卷积神经网络计算
- 3. 卷积核关注的特征
- 问题解答
- 水平边缘检测与水平条纹检测
- 45度条纹检测
- 4. 图像检测
- 5. 卷积网络是特殊的全连接网络
- 6. 输出矩阵的三种填充方法
- 7. 卷积设计
- 8.9 成像公式
- 10. 卷积的计算次数
- 11. 全连接层的计算
1. 卷积核计算
卷积操作过程
- 对于给定矩阵 ( 2 3 1 0 3 4 1 2 3 ) \begin{pmatrix}2&3&1\\0&3&4\\1&2&3\end{pmatrix} 201332143 和卷积核 ( 1 1 2 − 3 ) \begin{pmatrix}1&1\\2&-3\end{pmatrix} (121−3),步长为(1)。
- 按照卷积运算规则,从矩阵左上角开始依次取 2 × 2 2\times2 2×2子矩阵与卷积核(相对于位置元素)相乘再求和,得到卷积后的结果为 ( − 4 − 2 − 1 2 ) \begin{pmatrix}-4&-2\\-1&2\end{pmatrix} (−4−1−22)。
- 注意不是矩阵乘法。
ReLU激活操作过程
- ReLU函数为 y = max ( 0 , x ) y = \max(0,x) y=max(0,x), 将卷积结果 ( − 4 − 2 − 1 2 ) \begin{pmatrix}-4&-2\\-1&2\end{pmatrix} (−4−1−22)的每个元素代入ReLU函数。
- 经过计算,被ReLU激活后的结果为 ( 0 0 0 2 ) \begin{pmatrix}0&0\\0&2\end{pmatrix} (0002)。
2. 卷积神经网络计算
3. 卷积核关注的特征
问题解答
从数学角度看,卷积操作是对图像局部区域的加权求和。当卷积核中的权重有正有负时,在进行加权求和时,能够突出显示图像中像素值变化较大的区域。
左边卷积核
- 当这个卷积核在图像上滑动进行卷积操作时,它会对图像中的竖条纹状特征有较强的响应。
- 原因是:在竖条纹区域,卷积核中的 1 1 1和 − 1 -1 −1会分别与条纹的亮部和暗部(亮部的像素值比较大,暗部的像素值比较小)对应相乘并求和,得到较大的响应值。例如,如果图像中有一条垂直的亮条纹,当卷积核的 1 1 1与亮条纹对应时,会产生较大的正值。
右边卷积核
- 当这个卷积核在图像上滑动进行卷积操作时,它会对图像中的横条纹状特征有较强的响应。
- 原因是:在横条纹区域,卷积核中的 1 1 1和 − 1 -1 −1会分别与条纹的亮部和暗部对应相乘并求和,得到较大的响应值。例如,如果图像中有一条水平的亮条纹,当卷积核的 1 1 1与亮条纹对应时,会产生较大的正值。
水平边缘检测与水平条纹检测
- 水平边缘检测卷积核
- 典型的水平边缘检测卷积核如Sobel算子的水平版本 K e d g e − h o r i z o n t a l = ( − 1 0 1 − 2 0 2 − 1 0 1 ) K_{edge - horizontal}=\begin{pmatrix}-1&0&1\\-2&0&2\\-1&0&1\end{pmatrix} Kedge−horizontal= −1−2−1000121 。
- 原理:它主要是检测图像中水平方向上像素值的急剧变化,也就是边缘。
- 当这个卷积核在图像上滑动时,通过对覆盖区域内像素值的加权求和来判断是否存在水平边缘。
- 例如,当它滑过图像中从 左到右(注意卷积核左负右正) 像素值有明显变化(如从暗到亮)的区域时,由于卷积核左侧是负数权重,右侧是正数权重,加权求和后(右侧)会得到较大的值,从而检测到水平边缘。
- 特点:这种卷积核对水平方向上的像素值变化敏感,旨在找到边缘位置,其响应值在边缘处较大,在平滑区域较小。
- 检测水平条纹的卷积核
- 例如 K s t r i p e − h o r i z o n t a l = ( 1 1 1 0 0 0 − 1 − 1 − 1 ) K_{stripe - horizontal}=\begin{pmatrix}1&1&1\\0&0&0\\-1&-1&-1\end{pmatrix} Kstripe−horizontal= 10−110−110−1 可以用于检测水平条纹。
- 原理: 它是通过对水平方向上的像素值进行特定加权求和来检测水平条纹。
- 当该卷积核在图像上滑动时,如果遇到水平条纹,其正负权重区域会分别与条纹的亮部和暗部对应相乘并求和,得到较大的响应值。
- 例如,对于一条水平亮条纹,卷积核中的正数权重(第一行)与亮条纹对应时会产生较大的正值。
- 特点:这种卷积核侧重于检测水平方向上具有一定宽度和对比度的条纹,其响应值在水平条纹区域较大,在其他区域较小。
- 不同点总结
- 设计目的:水平边缘检测卷积核的目的是找到水平方向上像素值的急剧变化(边缘),而检测水平条纹的卷积核是为了找到水平方向上具有一定宽度和对比度的条纹。
- 权重分布: 水平边缘检测卷积核的权重分布是左右对称且有正负交替,以检测边缘(左右)两侧的像素值变化;检测水平条纹的卷积核权重分布则是水平方向上有明显的正负区分,用于匹配条纹的亮暗部分。
- 响应结果: 水平边缘检测卷积核在图像的边缘处响应值大,在平滑区域响应值小;检测水平条纹的卷积核在水平条纹区域响应值大,在非条纹区域响应值小。
45度条纹检测
- 构建用于检测45°条纹的卷积核
- 一个简单的卷积核可以是 ( 0 1 − 1 − 1 0 1 1 − 1 0 ) \begin{pmatrix}0&1&-1\\-1&0&1\\1&-1&0\end{pmatrix} 0−1110−1−110 。
- 原理
- 斜对角线为0,因为卷积核的权重分布应该对 45° 方向上的像素值变化敏感。
- 当这个卷积核在图像上滑动时,它会对45°方向上的像素值变化进行加权求和。
- 对于45°亮条纹(从左上角到右下角方向),当卷积核的正数权重区域与亮条纹部分重合,负数权重区域与暗条纹部分重合时,加权求和会得到较大的响应值,从而检测到45°条纹。
- 数学过程示例
- 假设图像中有一个简单的45°亮条纹区域,条纹部分像素值为1,背景像素值为0。当卷积核在条纹区域滑动时,根据卷积操作规则,计算加权求和。
- 以卷积核左上角与条纹左上角重合为例,卷积计算为 ( 0 × 0 + 1 × 1 + ( − 1 ) × 0 ) + ( ( − 1 ) × 0 + 0 × 1 + 1 × 0 ) + ( 1 × 0 + ( − 1 ) × 1 + 0 × 0 ) = 0 (0\times0 + 1\times1+(-1)\times0)+((-1)\times0 + 0\times1+1\times0)+(1\times0 + (-1)\times1+0\times0)=0 (0×0+1×1+(−1)×0)+((−1)×0+0×1+1×0)+(1×0+(−1)×1+0×0)=0,随着卷积核的滑动,在条纹区域合适位置会得到较大的响应值。
- 其他可能的卷积核及改进方法
- 还可以通过旋转、组合等方式得到更复杂的卷积核来更好地检测45°条纹。
- 例如,将水平和垂直方向的Sobel卷积核进行旋转和组合,或者使用高斯差分(DoG)方法结合旋转来构建对45°条纹更敏感的卷积核,同时可以结合图像预处理(如旋转、缩放等)来增强45°条纹检测的效果。
4. 图像检测
在图像处理问题中,最常用的神经网络是卷积神经网络,如下原因
权值共享:减少参数量
局部连接: 卷积层中的神经元只与输入图像的局部区域相连接,这符合图像的局部特性。例如,在识别图像中的物体时,局部的像素特征往往能反映出物体的局部结构,卷积神经网络能够很好地捕捉这些局部特征。
平移不变性:这意味着无论目标物体在图像中的哪个位置出现,卷积核都能以相同的方式检测到它。例如,在人脸识别任务中,人脸出现在图像的左上角或右下角,卷积神经网络都能有效识别。
专为图像处理设计:它在图像分类、目标检测、图像分割等图像处理任务中都表现出很强的能力。例如,在著名的ImageNet图像分类竞赛中,基于卷积神经网络的模型取得了非常高的准确率。
相比之下:
- 全连接神经网络(A选项)参数过多,容易过拟合,在图像处理中效率较低。
- 图神经网络(B选项)主要用于处理图结构数据,而非图像数据。
- 循环神经网络(D选项)主要用于处理序列数据,如自然语言处理中的文本数据等,不适用于图像处理。
5. 卷积网络是特殊的全连接网络
6. 输出矩阵的三种填充方法
输出图像的三种填充方法如下:
图像填充方法、合法填充、保持图像大小填充
有如下问题:
完整填充(full padding)
- 输出大小公式: ( H i n + H f − 1 ) × ( W i n + W f − 1 ) × K o u t (H_{in}+H_f - 1)×(W_{in}+W_f - 1)×K_{out} (Hin+Hf−1)×(Win+Wf−1)×Kout
- 解释: 在完整填充中,输入矩阵的四周会填充足够多的0,使得滤波器在输入矩阵上滑动时,每个位置都能进行卷积操作。
- 对于高度方向,滤波器可以从最上方开始滑动,滑动的步数为 H i n + H f − 1 H_{in}+H_f - 1 Hin+Hf−1步。同理,对于宽度方向,滑动步数为 W i n + W f − 1 W_{in}+W_f - 1 Win+Wf−1步。
- 输出通道数为 K o u t K_{out} Kout。
保持图像大小填充(same padding)
- 输出大小公式: H i n × W i n × K o u t H_{in}×W_{in}×K_{out} Hin×Win×Kout
- 解释:在保持图像大小填充中,通过在输入矩阵四周填充合适数量的0,使得输出矩阵的大小与输入矩阵相同。 这意味着卷积操作后,输出矩阵的高度和宽度保持不变,仍为 H i n H_{in} Hin和 W i n W_{in} Win,通道数变为 K o u t K_{out} Kout。
合法填充(valid padding)
- 输出大小公式: ( H i n − H f + 1 ) × ( W i n − W f + 1 ) × K o u t (H_{in}-H_f + 1)×(W_{in}-W_f + 1)×K_{out} (Hin−Hf+1)×(Win−Wf+1)×Kout
- 解释: 在合法填充中,不进行额外的填充(除了可能在边缘处有必要的少量填充以保证滤波器能完整覆盖输入矩阵的局部区域)。
- 对于高度方向,滤波器从输入矩阵的顶部开始,能够滑动的步数为 H i n − H f + 1 H_{in}-H_f + 1 Hin−Hf+1步。同理,对于宽度方向,滑动步数为 W i n − W f + 1 W_{in}-W_f + 1 Win−Wf+1步。
- 输出通道数为 K o u t K_{out} Kout。
注意:输出通道数都为 K o u t K_{out} Kout。
7. 卷积设计
- 卷积核设计
- 采用三个 1 × 1 × 3 1×1×3 1×1×3的线性滤波器。
- 1x1(每次处理多少)代表是卷积核矩阵的大小,即它一次只处理一个像素点
- 3(有能力提取这个像素点的特征)代表输入通道数,那卷积核需要三个通道能够处理输入通道,以便输出指定目标
- 3个滤波器(要提取多少个特征):因为需要输出RGB,每个通道都需要如上一个滤波器来输出指定要求的值,所以需要三个。
- 这三个滤波器的权重分别为: 第一个滤波器: [ 0 , 0 , 1 ] [0, 0, 1] [0,0,1]、 第二个滤波器: [ 0 , 1 , 0 ] [0, 1, 0] [0,1,0]、第三个滤波器: [ 1 , 0 , 0 ] [1, 0, 0] [1,0,0]
- 卷积操作过程: 对于输入图像中的每个像素,其RGB值会与这三个滤波器进行卷积操作。以输入像素的RGB值 ( R , G , B ) (R, G, B) (R,G,B)为例:
- 第一个滤波器 [ 0 , 0 , 1 ] [0, 0, 1] [0,0,1]与 ( R , G , B ) (R, G, B) (R,G,B)卷积,结果为 B B B。
- 第二个滤波器 [ 0 , 1 , 0 ] [0, 1, 0] [0,1,0]与 ( R , G , B ) (R, G, B) (R,G,B)卷积,结果为 G G G。
- 第三个滤波器 [ 1 , 0 , 0 ] [1, 0, 0] [1,0,0]与 ( R , G , B ) (R, G, B) (R,G,B)卷积,结果为 R R R。
- 这样,通过这三个滤波器的卷积操作,就实现了红色通道和蓝色通道值的对调。
- 验证
- 对于输入像素 ( 255 , 128 , 0 ) (255, 128, 0) (255,128,0):
- 第一个滤波器 [ 0 , 0 , 1 ] [0, 0, 1] [0,0,1]卷积结果: 0 0 0
- 第二个滤波器 [ 0 , 1 , 0 ] [0, 1, 0] [0,1,0]卷积结果: 128 128 128
- 第三个滤波器 [ 1 , 0 , 0 ] [1, 0, 0] [1,0,0]卷积结果: 255 255 255
- 输出像素为 ( 0 , 128 , 255 ) (0, 128, 255) (0,128,255),符合要求。
8.9 成像公式
10. 卷积的计算次数
每个输出位置:需要进行大小为 H f × W f × K i n H_f×W_f×K_{in} Hf×Wf×Kin的向量之间的点积。
对于一个输出通道,总共有 H i n × W i n H_{in}×W_{in} Hin×Win个输出位置。 所以,对于一个输出通道,所需的乘法操作次数为 H f × W f × K i n × H i n × W i n H_f×W_f×K_{in}×H_{in}×W_{in} Hf×Wf×Kin×Hin×Win。
考虑输出通道:因为总共有 K o u t K_{out} Kout个输出通道,所以总的乘法操作次数为 H f × W f × K i n × H i n × W i n × K o u t H_f×W_f×K_{in}×H_{in}×W_{in}×K_{out} Hf×Wf×Kin×Hin×Win×Kout。
11. 全连接层的计算
全连接层的每一个输出需要和输入同样大小的乘法操作,所以一共需要输入×输出数量的乘法操作,即 H i n 2 × W i n 2 × K i n × K o u t H_{in}^2 \times W_{in}^2 \times K_{in} \times K_{out} Hin2×Win2×Kin×Kout。
相比于卷积操作的 H f × W f × K i n × H i n × W i n × K o u t H_f \times W_f \times K_{in} \times H_{in} \times W_{in} \times K_{out} Hf×Wf×Kin×Hin×Win×Kout次,全连接操作乘法数除以卷积操作乘法数是 H i n × W i n H f × W f > 1 \frac{H_{in} \times W_{in}}{H_f \times W_f} > 1 Hf×WfHin×Win>1也就是说全连接需要更多的乘法计算。
相关文章:
【人工智能基础08】卷积神经网络习题:卷积神经网络计算、图像填充、卷积的表达与设计
文章目录 1. 卷积核计算2. 卷积神经网络计算3. 卷积核关注的特征问题解答水平边缘检测与水平条纹检测45度条纹检测 4. 图像检测5. 卷积网络是特殊的全连接网络6. 输出矩阵的三种填充方法7. 卷积设计8.9 成像公式10. 卷积的计算次数11. 全连接层的计算 1. 卷积核计算 卷积操作过…...
前端-使用vue-cli脚手架创建项目
1.下载node:2.下载完检查是否安装成功 在cmd中输入:node --version或node -v 再在cmd中输入: npm -v npm默认的仓库地址是在国外,速度慢,所以设置淘宝镜像,速度就提升了,不设淘宝镜像也可以。 3.设置…...
功能篇:JAVA实现自定义注解
在Java中创建自定义注解可以通过使用interface关键字来完成。自定义注解可以包含元素(即参数),并且你可以指定这些元素的默认值、保留策略以及应用的目标。以下是实现自定义注解的基本步骤和示例代码。 ### 自定义注解的组成部分 1. **元素…...
调度系统:Temporal 在大数据领域的局限分析
在大数据领域的任务管理中,Temporal 和 Apache Airflow 各有优劣。要选择更适合的工具,需根据具体需求(如任务复杂性、依赖管理、分布式能力等)权衡。 以下是两者的比较及 Temporal 在大数据领域的局限分析: Tempora…...
保姆级教学 uniapp绘制二维码海报并保存至相册,真机正常展示图片二维码
一、获取二维码 uni.request({url: https://api.weixin.qq.com/wxa/getwxacode?access_token${getStorage("token")},responseType: "arraybuffer",method: "POST",data: {path: "/pages/index/index"},success(res) {// 转换为 Uint…...
不是“我应该做什么”,而是“我想做什么”
1. 识别内心的渴望 首先,我们需要识别自己真正的愿望和激情所在。这可能需要一些时间和自我反思。问自己:在没有任何外界压力的情况下,我真正想做的是什么?是赚钱、生活、旅行、追星,还是其他什么?识别这些…...
【openwrt】openwrt-21.02 基于IP地址使用ipset实现策略路由操作说明
openwrt版本信息 DISTRIB_ID=OpenWrt DISTRIB_RELEASE=21.02-SNAPSHOT DISTRIB_REVISION=r0-6bf6af1d5 DISTRIB_TARGET=mediatek/mt7981 DISTRIB_ARCH=aarch64_cortex-a53 DISTRIB_DESCRIPTION=OpenWrt 21.02-SNAPSHOT r0-6bf6af1d5 DISTRIB_TAINTS=no-all busybox override …...
Linux内核Kernel启动过程
一、内核启动的基本流程 1. 启动加载程序 (Bootloader) 启动加载程序(如GRUB、LILO、syslinux等)负责将内核映像从存储设备加载到内存中,并准备好内核启动所需的环境。 加载内核映像:启动加载程序将压缩的内核映像(如…...
苍穹外卖复习(持续更新)
文章目录 苍穹外卖复习Day01Day02(新增员工) 苍穹外卖复习 Day01 Day02(新增员工)...
子网划分实例
看到有人问这个问题: 想了一下,这是一个子网划分的问题: 处理方法如图: 这是一个子网划分的问题 设备1用三层交换机,端口设置为路由模式,设备2和设备3为傻瓜交换机模式 设备2和设备3下挂设备都是26为掩码&…...
二进制部署Prometheus+grafana+alertmanager+node_exporter
Prometheus 是一个开源的监控和告警工具包,旨在提供高可靠性和可扩展性。它最初由 SoundCloud 开发,现已成为云原生计算基金会(CNCF)的一部分。以下是 Prometheus 的一些关键特性和概念: 1. **时间序列数据库**&#…...
数据结构——图(遍历,最小生成树,最短路径)
目录 一.图的基本概念 二.图的存储结构 1.邻接矩阵 2.邻接表 三.图的遍历 1.图的广度优先遍历 2.图的深度优先遍历 四.最小生成树 1.Kruskal算法 2.Prim算法 五.最短路径 1.单源最短路径--Dijkstra算法 2.单源最短路径--Bellman-Ford算法 3.多源最短路径--Floyd-…...
Android APK打包流程
文章目录 前言1. 资源打包(通过 AAPT)2. 处理 AIDL 文件3. Java 源代码编译4. Dex 转换5. APK 打包6. APK 签名7. APK 对齐总结 前言 Android APK 打包过程包括多个关键步骤,每个环节都提供了不同的操作机会。开发者可以在这些步骤中进行自定…...
《Liunx系统》之基础操作命令
目录 简介 1. 文件和目录操作 1.1 查看当前目录 1.2 列出目录内容 1.3 切换目录 1.4 创建目录 1.5 删除目录 1.6 创建文件 1.7 删除文件 2. 文件内容操作 2.1 查看文件内容 2.2 搜索文件内容 2.3 复制文件 2.4 移动文件 3. 系统信息和进程管理 3.1 查看系统信息…...
linux 编译、交叉编译 opencv+ffmpeg 为动态库
文章目录 x86 编译先编译 ffmpeg再编译 opencv验证 opencv 的安装是否链接了 ffmpeg 交叉编译(目标系统 armv8 即 arrch64)准备交叉编译工具链(arm 版 gcc、g)先编译 ffmpeg再编译 opencv验证 opencv 的安装是否链接了 ffmpeg 参考…...
Robust Univariate Mean Estimation算法简介
Robust Univariate Mean Estimation 是一种统计算法,主要用于在单变量场景中估计样本的均值,同时对异常值(outliers)具有鲁棒性。传统的均值估计使用样本的算术平均值,但它对异常值高度敏感。为了缓解这个问题…...
区块链智能合约( solidity) 安全编程
引言:本文由天玄链开源开发者提供,欢迎报名公益天玄链训练营 https://blockchain.163.com/trainingCamp 一、重入和竞态 重入和竞态在solidity 编程安全中会多次提及,历史上也造成了重大的损失。 1.1 问题分析 竞态的描述不严格…...
断点续传【授权访问】
本文介绍如何使用STS以及签名URL临时授权访问OSS资源。 授权方式 OSS支持多种授权方式进行客户端授权,以下提供了三种不同授权方式的简要说明,并提供了使用相应授权方式实现简单上传的代码示例,您可以根据使用场景对认证和授权的要求&#…...
中华国际游艇会出席第六届地博会助世界酒中国菜地理标志走向全球
中华国际游艇会积极参与第六届知交会暨地博会,助力世界酒中国菜地理标志产品走向全球 第六届粤港澳大湾区知识产权交易博览会暨国际地理标志产品交易博览会于2024年12月9日至11日在中新广州知识城盛大举行。此次盛会汇聚了众多行业精英和企业代表,共同探…...
Python爬虫——HTML中Xpath定位
Xpath是一种路径查询语言。利用一个路径表达式从html文档中找到我们需要的数据位置,进而将其写入到本地或者数据库中。 学习Xpath爬虫,我们首先学习一下python中lxml库 关于库 lxml 终端下载Xpath需要用到的模块 pip install lxml 关于HTML 超文本标…...
Ubuntu防火墙管理(六)——ARP防火墙过滤防御自定义系统服务
起因 在ubuntu24.04中检查arp表,输出异常 arp -a? (10.162.242.142) 位于 74:3a:20:b9:e8:02 [ether] 在 wlp2s0 ? (10.162.0.1) 位于 在 wlp2s0 ubuntu环境中,这是否表示ARP攻击,本地网关为10.162.0.1,可用arptables防御吗&a…...
Halcon_数据类型_ROI_仿射变换_投影变换
文章目录 算子快捷键一、Halcon数据类型Iconic (图标)Control (控制)Tuple (数组) 二、ROI(区域)1.代码创建ROI2.手动创建ROI 三、图形预处理1.图像的变换与矫正平移 -hom_mat2d_translate旋转缩放-HomMat2D:输入的仿射…...
java+ssm+mysql高校学籍管理系统
项目介绍: 使用javassmmysql开发的高校学籍管理系统,系统包含超级管理员,系统管理员、教师、学生角色,功能如下: 超级管理员:管理员管理(可以新增管理员);专业管理&…...
多表设计-一对多一对多-外键
一.多表设计概述: 二.一对多: 1.需求: 根据 页面原型 及 需求文档,完成部门及员工模块的表结构设计 -->部门和员工就是一对多,因为一个部门下会有多个员工,但一个员工只归属一个部门 2.页面原型&…...
Scala的正则表达式(1)
package hfd //正则表达式的应用场景 //1.查找 findAllin //2.验证 matches //3.替换//验证用户名十分合法 //规则: //1.长度在6-12之间 //2.不能数字开头 //3.只能包含数字,大小写字母,下划线 object Test36 {def main(args: Array[String])…...
uniapp扭蛋机组件
做了一个uniapp的扭蛋机组件,可以前往下载地址下载 仅测试了vue2、3、h5页面微信小程序,理论支持全平台 使用方法简单,具有待机动效、抽奖中动效、掉落奖品动效,可以替换奖品图片,足以满足大部分抽奖页面需求。 示例图…...
并发背后的技术与原理
一个Java Web项目能够同时支持多个用户请求,而不会导致数据混乱,这主要得益于Java平台的多线程处理机制、Web容器的请求处理模型以及良好的编程实践。 Java的多线程处理: Java是一种支持多线程的编程语言。在Java Web应用中,每个用…...
HarmonyOS(63) ArkUI 自定义占位组件NodeContainer
NodeContainer 1、前言2、NodeContainer和NodeController3、示例代码3.1、创建@Builder3.2、 创建NodeController3.3、 使用NodeCtroller4、NodeContainer的作用5、FrameNode简介6、BuilderNode简介7、参考资料1、前言 在HarmonyOS(62) ArkUI @Reusable组件复用原理讲了组件复…...
机器学习实战学习笔记:前言与准备
个人学习介绍 该专栏作为《机器学习实战(原书第三版)》的读书笔记,涉及对书本内容的理解和书本内容原有的示例和部分原文。略懂一点点python语法编程环境选用python 3.12.1 ,IDE为 DataSpell (主要)&#…...
Linux应用开发————多线程的互斥与同步——同步
同步和互斥 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。 条件变量机制…...
【人工智能】深度解剖利用人工智能MSA模型
目录 情感分析的应用一、概述二、研究背景三、主要贡献四、模型结构和代码五、数据集介绍六、性能展示七、复现过程 情感分析的应用 近年来社交媒体的空前发展以及配备高质量摄像头的智能手机的出现,我们见证了多模态数据的爆炸性增长,如电影、短视频等…...
Java 环境配置 + IntelliJ IDEA 使用指南
文章目录 一、Java 程序的运行必须经过3 个步骤:编写、编译、运行(1)Java 和 JavaScript 的区别(2)JDK、JRE、JVM 的关系(3)是否需要 Maven? 二、软件下载2.1、JDK下载与安装 —— 是…...
兴业周报|楼市新政效果显著~单周成交破5亿~
香山清琴山庄丙19号(独栋别墅) 稀缺房源:标的物为京城少有的独栋别墅,在连续的 “限墅令” 及相关容积L限制政策下,市场上独栋别墅的新增供应不断减少。 环境优美:香山清琴山庄依山而筑,错落有…...
学习笔记063——通过使用 aspose-words 将 Word 转 PDF 时,遇到的字体改变以及乱码问题
文章目录 1、问题描述:2、解决方法: 1、问题描述: Java项目中,有个需要将word转pdf的需求。本人通过使用aspose-words来转换的。在Windows中,转换是完全正常的。但是当部署到服务器时,会出现转换生成的pdf…...
人工智能导论学习笔记
目录 一、概要 二、人工智能基础知识 智能 人工智能 人工智能三要素 人工智能发展历程 人工智能的三次浪潮 人工智能行业发展现状 人工智能技术水平现状 人工智能技术层级 人工智能应用开发周期 机器学习的流程 一、概要 《人工智能导论(通识版)》张大斌 田恒义 许…...
FCOS: Fully Convolutional One-Stage Object Detection——全卷积一阶段目标检测
FCOS(Fully Convolutional One-Stage Object Detector)是一种全卷积的单阶段目标检测器,旨在通过消除锚点(anchor)的使用,简化目标检测的流程。以下是FCOS的主要特点和组成部分: 1. 无锚点设计…...
《Java核心技术I》映射条目的原子更新
映射条目的原子更新 ConcurrentHashMap只有部分原子更新。 JavaAPI提供了一些新方法,例如:compute方法可以提供一个键和一个计算新值的函数。 map.compute(word,(k,v)->v null ? 1 : v1) 注释:ConcurrentHashMap中不允许有null值。很…...
微信小程序介绍-以及写项目流程(重要)
前言:本篇文章介绍微信小程序以及项目介绍: 文章介绍:介绍了微信小程序常用的指令、组件、api。tips:最好按照官方文档来进行学习,大致可以我的目录来学习,对于写项目是没有问题的 微信小程序官方文档https…...
241207-通过Docker部署Wiki.JS并设置ElasticSearch进行中文搜索
A. 最终效果 B. 配置文件 version: "3" services:wiki:image: ghcr.io/requarks/wiki:2container_name: wikijsports:- "3000:3000"volumes:- /home/lgk/Projects/WikiJS/config:/configenvironment:- DB_TYPEpostgres- DB_HOSTdatabase- DB_PORT5432- DB…...
yum 离线软件安装
适用范围 支持YUM软件管理的操作系统: 银河麒麟 服务器操作系统V10统信服务器操作系统V20CentOS 系列 准备 准备一台可以连接互联网并且与离线安装的操作系统相同版本的操作系统,包括指令集类型相同。 安装下载工具 查询是否已经安装下载工具 yum…...
【jvm】垃圾回收的优点和原理
目录 1. 说明2. 优点3. 原理3.1 发现无用对象3.2 回收无用对象所占用的内存 4. 回收算法4.1 标记-清除算法4.2 复制算法4.3 标记-整理算法4.4 分代收集算法 1. 说明 1.JVM(Java虚拟机)垃圾回收是Java语言的一大特性,它自动管理内存ÿ…...
LeetCode322. 零钱兑换(2024冬季每日一题 28)
给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示…...
LearnOpenGL学习(高级OpenGL --> 帧缓冲,立方体贴图,高级数据)
完整代码见:zaizai77/Cherno-OpenGL: OpenGL 小白学习之路 帧缓冲 帧缓冲(FrameBuffer)是所有屏幕缓冲(包括颜色缓冲,深度缓冲,模板缓冲)的集合。它被存储在GPU内存中,我们可以定义…...
mysql笔记——索引
索引 InnoDB采用了B树索引结构。 相比于二叉树,层级更少,搜索效率高。 B树中叶子节点和非叶节点都会存储数据,导致段页式存储中一页存储的键值减少,指针也会减少,要同样保存大量数据,只能增加树的高度&a…...
React第十五节useReducer使用详解差异
useReducer() 的用法注意事项 1、 概述: useReducer() 常用于管理复杂的状态更新逻辑,特别是在状态更新依赖于多个条件或动作时,useReducer 提供了一种更加结构化和可维护的方式来处理状态。可以将更新函数写在组件外面 它与 useState() 相…...
高效备考 Oracle 19c OCM 的建议
满足报考条件 考生需要先获得 19c OCP(Oracle Certified Professional)认证,并完成 Oracle 官方认可的 OCP 培训课程 制定学习计划 规划学习时间:根据考试时间和自己的日常安排,制定详细的学习计划,合理分配…...
01-Chromedriver下载与配置(mac)
下载地址: 这里我用的最后一个,根据自己chrome浏览器选择相应的版本号即可 ChromeDriver官网下载地址:https://sites.google.com/chromium.org/driver/downloads ChromeDriver官网最新版下载地址:https://googlechromelabs.git…...
网站流量和用户行为深度分析
关于网站流量数据集的探索 import pandas as pd import plotly.express as px import plotly.graph_objects as go import plotly.subplots as sp import matplotlib.pyplot as plt import seaborn as sns file_path /home/mw/input/webs4651/website_wata.csv data pd.rea…...
centOS7如何配置阿里云或者腾讯云yum源
众所周知,CentOS很多版本目前已经不再维护了,原本的在线yum源已经无法使用,所以需要我们配置其他的yum源。目前腾讯云或者阿里云的yum源都可以正常使用,所以本文教大家如何配置阿里云/腾讯云在线yum源。 阿里云yum源配置…...
洗鞋小程序(源码+文档+部署+讲解)
本文将深入解析“洗鞋小程序”的项目,探究其架构、功能以及技术栈,并分享获取完整源码的途径。 系统概述 为洗鞋提供服务,包含小程序和管理端。 本项目名称为洗鞋小程序,是一个基于小程序的在线洗鞋平台。该系统提供下单、订单管…...