【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(2)
机器学习(Machine Learning)
简要声明
基于吴恩达教授(Andrew Ng)课程视频
BiliBili课程资源
文章目录
- 机器学习(Machine Learning)
- 简要声明
- 神经网络在图像识别及手写数字识别中的应用
- 一、神经网络在图像识别中的应用
- (一)人脸识别
- (二)汽车分类
- 二、神经网络层的计算与符号表示
- (一)神经网络层的计算
- (二)符号表示
- 三、手写数字识别案例
- (一)网络结构与参数设置
- (二)前向传播过程
- (三)预测判断
神经网络在图像识别及手写数字识别中的应用
一、神经网络在图像识别中的应用
(一)人脸识别
在人脸识别领域,图像数据的预处理是模型训练的基石。以一张 1000 × 1000 1000 \times 1000 1000×1000 像素的 RGB 彩色图像为例,其原始数据可视为一个三维矩阵 Image ∈ R 1000 × 1000 × 3 \text{Image} \in \mathbb{R}^{1000 \times 1000 \times 3} Image∈R1000×1000×3 ,每个元素对应一个像素点的红、绿、蓝通道值。为适配神经网络输入,需将其展平为一维向量 x ⃗ ∈ R 3000000 \vec{x} \in \mathbb{R}^{3000000} x∈R3000000 ,该向量包含了图像所有像素的色彩信息。实际应用中,还会进行归一化处理(如将像素值缩放到 0-1 区间),以加速模型收敛。
在网络架构设计上,人脸识别模型常采用多层卷积神经网络(CNN)。输入层接收展平图像向量后,隐藏层通过卷积、池化操作提取特征。以 VGG-16 为例,前几层卷积层用 3x3 卷积核检测边缘,池化层降维后,后续卷积层提取纹理等复杂特征。输出层输出概率分布向量,元素值接近 1 代表与对应人脸高度匹配。实际部署时结合余弦相似度计算,将概率转为相似度评分,增强识别鲁棒性。
(二)汽车分类
汽车分类任务的流程与人脸识别相似,但特征提取逻辑存在显著差异。输入图像同样需经过标准化处理,将其转化为适合网络计算的张量形式。除了常规的归一化,还会使用数据增强技术(如旋转、裁剪、亮度调整)扩充数据集,避免模型过拟合。
模型在隐藏层先识别汽车通用特征(如轮廓、车轮),再提取品牌专属特征(如宝马双肾格栅)。以 ResNet-50 为例,其残差结构克服梯度消失,支持深层特征学习。输出层以概率值表征分类置信度,如 0.85 表示 85% 概率为目标车型。实际应用中通过设置 0.7 阈值,筛除低置信预测,优化分类效果。
二、神经网络层的计算与符号表示
(一)神经网络层的计算
以全连接层为例,假设第 l l l 层包含 m m m 个神经元,输入向量为 x ⃗ ∈ R n \vec{x} \in \mathbb{R}^{n} x∈Rn ,其计算过程可拆解为以下步骤:
线性变换:对每个神经元 j ∈ [ 1 , m ] j \in [1, m] j∈[1,m] ,计算加权和
z j [ l ] = ∑ i = 1 n w i j [ l ] x i + b j [ l ] = w ⃗ j [ l ] ⋅ x ⃗ + b j [ l ] z_{j}^{[l]} = \sum_{i = 1}^{n} w_{ij}^{[l]} x_i + b_{j}^{[l]} = \vec{w}_{j}^{[l]} \cdot \vec{x} + b_{j}^{[l]} zj[l]=∑i=1nwij[l]xi+bj[l]=wj[l]⋅x+bj[l]
其中 w ⃗ j [ l ] ∈ R n \vec{w}_{j}^{[l]} \in \mathbb{R}^{n} wj[l]∈Rn 为权重向量, b j [ l ] b_{j}^{[l]} bj[l] 为偏置项。这里的权重矩阵 W [ l ] ∈ R m × n \mathbf{W}^{[l]} \in \mathbb{R}^{m \times n} W[l]∈Rm×n 存储了该层所有神经元的权重参数,其每一行对应一个神经元的权重向量。
非线性激活:通过激活函数 g ( ⋅ ) g(\cdot) g(⋅) 引入非线性,典型的 sigmoid 函数定义为
g ( z ) = 1 1 + e − z g(z) = \frac{1}{1 + e^{-z}} g(z)=1+e−z1
得到神经元的激活值 a j [ l ] = g ( z j [ l ] ) a_{j}^{[l]} = g(z_{j}^{[l]}) aj[l]=g(zj[l]) ,所有神经元的激活值构成该层输出向量 a ⃗ [ l ] ∈ R m \vec{a}^{[l]} \in \mathbb{R}^{m} a[l]∈Rm 。除了 sigmoid 函数,常用的激活函数还有 ReLU(Rectified Linear Unit)、tanh 等,它们各有优缺点,适用于不同场景。例如 ReLU 在解决梯度消失问题上表现优异,广泛应用于深层神经网络。
(二)符号表示
为统一描述神经网络计算过程,常用符号体系如下:
符号 | 含义 | 补充说明 |
---|---|---|
x ⃗ \vec{x} x | 输入向量 | 通常表示原始数据或上一层的输出 |
a ⃗ [ l ] \vec{a}^{[l]} a[l] | 第 l l l 层的激活值向量 | 所有神经元激活值组成的向量 |
w ⃗ j [ l ] \vec{w}_{j}^{[l]} wj[l] | 第 l l l 层第 j j j 个神经元的权重向量 | 与输入向量做内积计算加权和 |
b j [ l ] b_{j}^{[l]} bj[l] | 第 l l l 层第 j j j 个神经元的偏置项 | 调整激活函数的位置 |
a j [ l ] a_{j}^{[l]} aj[l] | 第 l l l 层第 j j j 个神经元的激活值 | 非线性变换后的输出 |
对于多层神经网络,层间计算遵循递推关系:
a j [ l ] = g ( ∑ i = 1 m l − 1 w i j [ l ] a i [ l − 1 ] + b j [ l ] ) a_{j}^{[l]} = g\left(\sum_{i = 1}^{m_{l - 1}} w_{ij}^{[l]} a_{i}^{[l - 1]} + b_{j}^{[l]}\right) aj[l]=g(∑i=1ml−1wij[l]ai[l−1]+bj[l])
其中 m l − 1 m_{l - 1} ml−1 为第 l − 1 l - 1 l−1 层的神经元数量。这个公式清晰展示了每一层如何基于上一层的输出进行计算,是理解神经网络前向传播的核心。
三、手写数字识别案例
(一)网络结构与参数设置
构建一个三层全连接神经网络用于 MNIST 数据集的手写数字识别:
输入层:接收 28 × 28 28 \times 28 28×28 像素的灰度图像,展平后为 784 维向量。由于 MNIST 数据集中图像已经过预处理,我们直接使用原始数据,但在实际应用中,可通过添加高斯噪声等方式进行数据增强。
隐藏层 1:包含 25 个神经元,引入 ReLU 激活函数。ReLU 函数的计算简单高效,其公式为 f ( x ) = max ( 0 , x ) f(x) = \max(0, x) f(x)=max(0,x) ,有效避免了梯度消失问题。
隐藏层 2:包含 15 个神经元,同样使用 ReLU 激活。这一层进一步对特征进行抽象,提取更具判别性的信息。
输出层:10 个神经元对应 0-9 十个数字类别,采用 softmax 激活函数输出概率分布。softmax 函数将输出值转化为概率分布,其公式为 σ ( z ) j = e z j ∑ k = 1 K e z k \sigma(z)_j = \frac{e^{z_j}}{\sum_{k = 1}^{K} e^{z_k}} σ(z)j=∑k=1Kezkezj ,其中 K K K 为类别数,在本案例中 K = 10 K = 10 K=10 。
(二)前向传播过程
第一层计算:
z j [ 1 ] = ∑ i = 1 784 w i j [ 1 ] x i + b j [ 1 ] a j [ 1 ] = max ( 0 , z j [ 1 ] ) ( j = 1 , ⋯ , 25 ) \begin{align*} z_{j}^{[1]} &= \sum_{i = 1}^{784} w_{ij}^{[1]} x_i + b_{j}^{[1]} \\ a_{j}^{[1]} &= \max(0, z_{j}^{[1]}) \quad (j = 1, \cdots, 25) \end{align*} zj[1]aj[1]=i=1∑784wij[1]xi+bj[1]=max(0,zj[1])(j=1,⋯,25)
在这一步,输入图像的 784 维向量与权重矩阵 W [ 1 ] ∈ R 25 × 784 \mathbf{W}^{[1]} \in \mathbb{R}^{25 \times 784} W[1]∈R25×784 相乘,再加上偏置向量 b ⃗ [ 1 ] ∈ R 25 \vec{b}^{[1]} \in \mathbb{R}^{25} b[1]∈R25 ,得到 25 个神经元的加权和,经过 ReLU 激活后得到第一层的输出。
第二层计算:
z k [ 2 ] = ∑ j = 1 25 w k j [ 2 ] a j [ 1 ] + b k [ 2 ] a k [ 2 ] = max ( 0 , z k [ 2 ] ) ( k = 1 , ⋯ , 15 ) \begin{align*} z_{k}^{[2]} &= \sum_{j = 1}^{25} w_{kj}^{[2]} a_{j}^{[1]} + b_{k}^{[2]} \\ a_{k}^{[2]} &= \max(0, z_{k}^{[2]}) \quad (k = 1, \cdots, 15) \end{align*} zk[2]ak[2]=j=1∑25wkj[2]aj[1]+bk[2]=max(0,zk[2])(k=1,⋯,15)
第一层的输出作为第二层的输入,重复上述计算过程,进一步提取特征。
输出层计算:
z s [ 3 ] = ∑ k = 1 15 w s k [ 3 ] a k [ 2 ] + b s [ 3 ] a s [ 3 ] = e z s [ 3 ] ∑ t = 1 10 e z t [ 3 ] ( s = 1 , ⋯ , 10 ) \begin{align*} z_{s}^{[3]} &= \sum_{k = 1}^{15} w_{sk}^{[3]} a_{k}^{[2]} + b_{s}^{[3]} \\ a_{s}^{[3]} &= \frac{e^{z_{s}^{[3]}}}{\sum_{t = 1}^{10} e^{z_{t}^{[3]}}} \quad (s = 1, \cdots, 10) \end{align*} zs[3]as[3]=k=1∑15wsk[3]ak[2]+bs[3]=∑t=110ezt[3]ezs[3](s=1,⋯,10)
第二层的输出经过加权求和后,通过 softmax 函数转化为 10 个数字类别的概率分布。
(三)预测判断
输出层的概率分布向量 a ⃗ [ 3 ] \vec{a}^{[3]} a[3] 中,索引值对应数字类别。通过选择概率最大值的索引实现分类:
y ^ = arg max s ∈ { 1 , ⋯ , 10 } a s [ 3 ] \hat{y} = \arg\max_{s \in \{1, \cdots, 10\}} a_{s}^{[3]} y^=argmaxs∈{1,⋯,10}as[3]
例如,若 a ⃗ [ 3 ] = [ 0.02 , 0.01 , 0.95 , 0.01 , ⋯ , 0.01 ] \vec{a}^{[3]} = [0.02, 0.01, 0.95, 0.01, \cdots, 0.01] a[3]=[0.02,0.01,0.95,0.01,⋯,0.01] ,则模型预测数字为 2。在实际评估模型性能时,会使用准确率、精确率、召回率、F1 值等指标,通过交叉验证等方法全面评估模型的泛化能力。
continue…
相关文章:
【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(2)
机器学习(Machine Learning) 简要声明 基于吴恩达教授(Andrew Ng)课程视频 BiliBili课程资源 文章目录 机器学习(Machine Learning)简要声明 神经网络在图像识别及手写数字识别中的应用一、神经网络在图像识别中的应用࿰…...
【神经网络与深度学习】model.eval() 模式
引言 在深度学习模型的训练和推理过程中,不同的模式设置对模型的行为和性能有着重要影响。model.eval() 是 PyTorch 等深度学习框架中的关键操作,它用于将模型切换到评估模式(evaluation mode),确保模型在测试和推理阶…...
ASIC和FPGA,到底应该选择哪个?
ASIC和FPGA各有优缺点。 ASIC针对特定需求,具有高性能、低功耗和低成本(在大规模量产时);但设计周期长、成本高、风险大。FPGA则适合快速原型验证和中小批量应用,开发周期短,灵活性高,适合初创企…...
JavaScript 性能优化实战指南
JavaScript 性能优化实战指南 前言 随着前端应用复杂度提升,JavaScript 性能瓶颈日益突出。高效的性能优化不仅能提升用户体验,还能增强系统稳定性和可维护性。本文系统梳理了 JavaScript 性能优化的核心思路、常见场景和实战案例,结合代码…...
Unity3D HUD UI性能优化方案
前言 在Unity3D中实现高性能的HUD UI需要综合考虑渲染效率、CPU开销和内存管理。以下是分步的优化方案: 对惹,这里有一个游戏开发交流小组,大家可以点击进来一起交流一下开发经验呀! 1. 降低Draw Call:合批与图集 …...
晶圆Map图芯片选择显示示例
效果 列表中有四个Mark点,需求是选择某一个点时在Map图中区别显示出来。 实现思路: 根据DataGrid 的行选择 SelectionChanged事件,先循环所有Mark点清除Rectangle的边框大小,再获取选择的芯片,设置Rectangle的边框大小和颜色。 示例代码 1.UI代码 <DataGrid Grid.…...
HarmonyOS实战:自定义时间选择器
前言 最近在日常鸿蒙开发过程中,经常会使用一些时间选择器,鸿蒙官方提供的时间选择器满足不了需求,所以自己动手自定义一些经常会使用到的时间选择器,希望能帮到你,建议点赞收藏! 实现效果 需求分析 默认…...
汽车零部件的EMI抗扰性测试
写在前面 本系列文章主要讲解汽车零部件的EMI抗扰性测试的相关知识,希望能帮助更多的同学认识和了解汽车零部件的EMI抗扰性测试。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) 1. 背景介绍 多年以来,电磁干扰(EMI)效应一直是现代电子控制系统中备受关注的一个问题。…...
新能源汽车充电桩管理平台如何利用智慧技术优化资源配置问题?
在“双碳”目标的推动下,我国新能源汽车市场迅猛发展,但充电基础设施的供需失衡问题日益突出。部分区域充电桩利用率低下,而核心城区、高速服务区等场景却面临“一桩难求”的困境。智慧技术的引入为解决这一难题提供了新思路。通过物联网&…...
【zookeeper】--部署3.6.3
文章目录 下载解压创建data和logs配置文件1)创建目录并且编辑 zoo.cfg2)接下来将 node01 的 ZooKeeper 所有文件拷贝至 node02 和 node03。推荐从 node02 和 node03 拷贝4)最后 vim /etc/profile 配置环境变量,环境搭建结束。配完环境变量后 source /etc…...
[低代码] 明道云调用本地部署 Dify 的进阶方法
在低代码开发平台明道云中,集成外部智能服务(如 Dify)可以极大地提升自动化和智能化能力。之前我们介绍了使用“发送自定义 API”节点直接调用本地部署的 Dify 服务的方法,虽然简单直观,但该方式存在一些限制,比如无法设置 Timeout、逻辑复用性差等问题。 为了构建更稳定…...
ICU库交叉编译
交叉编译步骤 Step 1: 先进行本机编译 ./runConfigureICU Linux/gccmake Step 2: 执行交叉编译 source /opt/fsl-imx-fb/4.14-sumo/environment-setup-cortexa9hf-neon-poky-linux-gnueabimkdir cross_install./configure --disable-samples --disable-tests --prefix/medi…...
永磁同步电机高性能控制算法(22)——基于神经网络的转矩脉动抑制算法为什么低速时的转速波动大?
0. 前言 在之前的知乎上发过一些转矩脉动抑制/谐波电流抑制的算法。例如: https://zhuanlan.zhihu.com/p/24723996895https://zhuanlan.zhihu.com/p/24723996895 这些算法基本上都需要先知道谐波的频率。 重复控制这个算法虽然可以抑制掉某个频率及其所有整数倍的…...
Java大厂面试实战:Spring Boot与微服务场景中的技术点解析
Java大厂面试实战:Spring Boot与微服务场景中的技术点解析 第一轮:基础技术了解 面试官:谢飞机,你好。从简历上看,你熟悉Spring Boot,那我们来聊聊它的核心功能吧。Spring Boot有哪些主要的特性ÿ…...
Pycharm 选择Python Interpreter
你的系统可能有多个 Python 环境,比如: macOS 自带的 /usr/bin/python3 你用 brew install python 安装的 /opt/homebrew/bin/python3 你可能还用了虚拟环境(venv 或 conda) PyCharm 默认配置可能用的是一个虚拟环境ÿ…...
文件夹如何打包成jar包
应用场景 主要是:比如 maven 引入一个依赖(其实就是下载了一个 jar 包),然后需要修改 jar 包里面的某个文件,然后再重新打包成 jar 包,如下图: 使用方法 使用压缩工具打开这个 jar 包…...
sqli-labs第九关—‘时间盲注
一:判断闭合类型 先按照之前的判断方式判断,发现无论输入什么都显示You are in.......... 可以考虑使用时间盲注: 二:时间盲注Time-based Blind: 1.解释: 通过时间延迟判断结果 2.核心原理:…...
10.15 LangChain v0.3重磅升级:Tool Calling技术颠覆大模型工具调用,效率飙升300%!
LangChain v0.3 技术生态与未来发展:支持 Tool Calling 的大模型 关键词:LangChain Tool Calling, 大模型工具调用, @tool 装饰器, ToolMessage 管理, Few-shot Prompting 1. Tool Calling 的技术革新 LangChain v0.3 的工具调用(Tool Calling)功能标志着大模型应用开发进…...
【C++】哈希的概念与实现
1.哈希概念 通过某种函数使元素的存储位置与它的关键码之间能够建立一一映射的关系,可以不经过任何比较,一次直接从表中得到要搜索的元素。 当向该结构中: 插入元素: 根据待插入元素的关键码,以此函数计算出该元素的…...
Spring 代理与 Redis 分布式锁冲突:一次锁释放异常的分析与解决
Spring 代理与 Redis 分布式锁冲突:一次锁释放异常的分析与解决 Spring 代理与 Redis 分布式锁冲突:一次锁释放异常的分析与解决1. 问题现象与初步分析2 . 原因探究:代理机制对分布式锁生命周期的干扰3. 问题复现伪代码4. 解决方案࿱…...
vue Element-ui对图片上传和选用时的比例控制
vue Element-ui对图片上传和选用时的比例控制 在后台上传图片和选用已经上传的图片时,往往会因为图片的比例控制不到位导致在客户端渲染时效果差强人意,虽然可以在操作时选择合适的比例上传,但必要的控制还是能完成渲染时良好的体验…...
UE5在C++项目中判断不同平台
在Unreal Engine 5的C代码中,可以通过以下方法判断当前运行的平台(如Android、Windows、iOS),并根据平台执行不同的逻辑: 方法1:使用预处理器宏(编译时判断) Unreal Engine提供了一…...
用 CodeBuddy 实现「IdeaSpark 每日灵感卡」:一场 UI 与灵感的极简之旅
项目起点:一次随手的灵感 有时候,灵感稍纵即逝,尤其是面对屏幕发呆的时候。那天我忽然想到——要是能有一个每天弹出一句创意提示、灵感金句的应用就好了,最好配上简洁但有氛围感的 UI,像抽一张卡片一样,轻…...
std::ranges::views::as_const 和 std::ranges::as_const_view
std::ranges::views::as_const 和 std::ranges::as_const_view 是 C23 引入的视图适配器,用于生成一个不可变的视图,确保通过该视图访问元素时,元素被视为常量。以下是详细说明和示例: 基本概念 功能: 将输入范围的元素…...
3D 数据交换格式(.3DXML)简介
3DXML 是一种基于 XML 的 3D 数据交换格式,由达索系统(Dassault Systmes)开发,主要用于其 CATIA、SOLIDWORKS 和 3DEXPERIENCE 等产品中。 基本概述 全称:3D XML开发者:达索系统主要用途:3D…...
深度解析3D模型生成器:基于StyleGAN3与PyTorch3D的多风格生成工具开发实战
引言:跨模态生成的革命性突破 在元宇宙与数字孪生技术蓬勃发展的今天,3D内容生成已成为制约产业发展的关键瓶颈。传统建模方式依赖专业软件和人工操作,而基于深度学习的生成模型正颠覆这一范式。本文将深入解析如何构建支持多风格生成的3D模…...
DTAS 3D多约束装配助力悬架公差分析尺寸链计算:麦弗逊/双叉臂/多连杆/H臂一网打尽
摘要:汽车四轮定位参数与悬架密切相关。汽车悬架对于车辆的行驶性能、安全性和舒适性至关重要。DTAS 3D提供了各类型悬架的公差仿真分析方法。 关键字:DTAS 3D、前后悬架、公差仿真分析、 运动耦合 一、悬架公差分析综述 悬架是车身(或车架…...
CRMEB多商户预约服务上门师傅端
随着科技的不断发展,人们对于生活品质的要求也在不断提高。在这个过程中,各种便捷的上门服务应运而生,为我们的生活带来了极大的便利。而CRMEB多商户预约服务上门师傅端正是这样一款致力于为用户提供专业、高效、便捷的上门服务的应用。 一、…...
labview硬件开发板——LED流水灯
函数 : int DoSetV12( unsigned char chan, unsigned char state); 功能 :设置 OUT0—3 的输出状态,输入参数为 8 位字符型, Chan:4 位要设置的通道,0 对应 OUT1……3 对应 OUT4 ( 注意:开…...
linux——mysql故障排查与生产环境优化
目录 一,mysql数据库常见的故障 1,故障现象1 2,故障现象2 3,故障现象3 4,故障现象4 5,故障现象5 6,故障现象6 二&…...
MongoDB及spring集成
MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统 用文档存数据,每个文档可以看作是一个键值对集合,类似于 JSON 对象 MongoDB 支持索引以提高查询性能,并且可以在任何属性上创建索引 文档(Document) M…...
一发入魂:极简解决 SwiftUI 复杂视图未能正确刷新的问题(下)
概述 各位似秃非秃小码农们都知道,在 SwiftUI 中视图是状态的函数,这意味着状态的改变会导致界面被刷新。 但是,对于有些复杂布局的 SwiftUI 视图来说,它们的界面并不能直接映射到对应的状态上去。这就会造成一个问题:状态的改变并没有及时的引起 UI 的变化。 如上图所示…...
关于我在使用stream().toList()遇到的问题
关于我在使用stream().toList()遇到的问题 问题描述 在测试以上程序的时候抛出了空指针异常 于是我以为是我数据库中存在null字段,但查看后发现并不存在为null的数据 问题排查 起初我以为问题出现在sort排序方法这,事实也确实是,当我把s…...
如何通过生成式人工智能认证(GAI认证)提升自己的技能水平?
当生成式人工智能从实验室走向生产线,职场人正面临一个关键抉择:是被动等待技术浪潮的冲刷,还是主动构建适应未来的能力护城河?职业技能培训的终极目标,早已超越“掌握工具”的初级阶段,转向“构建技术认知体系”的深层需求。生成式人工智能认证(GAI认证)的兴起,正是这…...
通讯协议串口 | 485标准
485通讯(RS-485)详解 一、基本概念与核心原理 定义与标准 RS-485(又称EIA-485)是一种由美国电子工业协会(EIA)制定的差分信号串行通信标准,属于OSI模型的物理层协议。它专为工业环境设计&#…...
新能源充电桩智慧管理系统:未来新能源汽车移动充电服务发展前景怎样?
随着全球新能源汽车保有量的持续攀升,传统固定充电桩建设速度已难以满足用户日益增长的补能需求。在这一背景下,移动充电服务作为充电基础设施的重要补充,正展现出巨大的发展潜力。政策支持、技术进步(如快充、智能调度࿰…...
【强化学习】#6 n步自举法
主要参考学习资料:《强化学习(第2版)》[加]Richard S.Suttion [美]Andrew G.Barto 著 文章源文件:https://github.com/INKEM/Knowledge_Base 概述 n步时序差分方法是蒙特卡洛方法和时序差分方法更一般的推广。将单步Sarsa推广到n…...
双指针算法:原理与应用详解
文章目录 一、什么是双指针算法二、双指针算法的适用场景三、双指针的三种常见形式1. 同向移动指针2. 相向移动指针3. 分离指针 四、总结 一、什么是双指针算法 双指针算法(Two Pointers Technique)是一种在数组或链表等线性数据结构中常用的高效算法技…...
小土堆pytorch--神经网路的基本骨架(nn.Module的使用)卷积操作
小土堆pytorch–神经网路的基本骨架(nn.Module的使用) 对于官网nn.Module操作的解释 在pytorch官网可以看到 对于上述forward函数的解释: 示例代码 import torch from torch import nnclass Test(nn.Module): # 继承神经网路的基本骨架…...
数据库连接池技术与 Druid 连接工具类实现
目录 1. 数据库连接池简介 1.1. 什么是数据库连接池 1.2. 不使用数据库连接池可能存在的问题 1.3. JDBC数据库连接池的必要性 1.4. 数据库连接池的优点 1.5. 常用的数据库连接池 2. Druid连接池 2.1. Druid简介 2.2. Druid使用步骤 2.2.1. 第一步的步骤详解ÿ…...
chrome源码中WeakPtr 跨线程使用详解:原理、风险与最佳实践
base::WeakPtr 在 Chromium 中 不能安全地跨线程使用。这是一个很关键的点,下面详细解释原因及正确用法。 🔍原理与使用 ✅ 先说答案: base::WeakPtr 本质上是**线程绑定(thread-affine)**的。不能在多个线程之间创建…...
vue2使用three.js实现一个旋转球体
vue页面中 <div ref"container"></div>data声明 scene: null, camera: null, renderer: null, controls: null, rotationType: sphere, rotationTimer: null,backgroundImageUrl: https://mini-app-img-1251768088.cos.…...
社交平台推出IP关联机制:增强用户体验与网络安全的新举措
社交平台为我们提供与亲朋好友保持联系、分享生活点滴的便捷渠道,还成为了信息传播、观点交流的重要平台。然而,随着社交平台的普及,网络空间中的虚假信息、恶意行为等问题也日益凸显。为了应对这些挑战,许多社交平台相继推出IP关…...
sherpa-ncnn:音频处理跟不上采集速度 -- 语音转文本大模型
目录 1. 问题报错2. 解决方法 1. 问题报错 报错: An overrun occurred, which means the RTF of the current model on your board is larger than 1. You can use ./bin/sherpa-ncnn to verify that. Please select a smaller model whose RTF is less than 1 fo…...
【android bluetooth 协议分析 01】【HCI 层介绍 8】【ReadLocalVersionInformation命令介绍】
1. HCI_Read_Local_Version_Information 命令介绍 1. 功能(Description) HCI_Read_Local_Version_Information 命令用于读取本地 Bluetooth Controller 的版本信息,包括 HCI 和 LMP 层的版本,以及厂商 ID 和子版本号。 这类信息用…...
android13以太网静态ip不断断开连上问题
总纲 android13 rom 开发总纲说明 文章目录 1.前言2.log记录3.问题分析4.代码修改5.彩蛋1.前言 android13以太网静态ip不断断开连上,具体情况为保存静态以太网成功后,可以看到以太网链接成功的图标,但是几秒后会消失,出现断网,几秒后又出现,反复出现和消失。 2.log记录…...
UA 编译和建模入门教程(zhanzhi学习笔记)
一、使用SIOME免费工具建模 从西门子官网下载软件SIOS,需要注册登录,下载安装版就行。下载后直接安装就可以用了,如图: 安装完成后打开,开始建模,如图左上角有新建模型的按钮。 新建了新工程后,…...
系统架构设计-案例分析总结
系统架构设计-案例分析总结 2024年下半年系统架构设计师案例第1题 2022年下半年系统架构设计师案例第1题第2题 2021年下半年系统架构设计师案例第1题第2题 2024年下半年系统架构设计师案例 题:效用树可用性中ping/echo策略和心跳策略比较 第1题 阅读以下关于面向质…...
【QT】一个界面中嵌入其它界面(三)
在 Qt 中,通过 UI 设计 或 代码布局 实现界面 A 中同时显示界面 B 和 C,并精确指定它们的位置,可以通过以下两种方式实现。以下是详细步骤和完整代码: 方法 0:使用 Qt Designer 可视化布局 通过 Qt Designer 拖拽控件…...
实战教程:影刀RPA采集闲鱼商品并分享钉钉
1.实战目标 采集字段: 采集时间商品ID商品标题标价商品链接 采集的第一个品 可通过钉钉分享给好友 也可以通过钉钉群通知指令,发送到指定群 2.实战代码 2.1 主体代码 2.2 采集初始化 先初始化环境 这一步骤主要是连接手机,能使用影刀RPA操…...