重新整理机器学习和神经网络框架
本篇重新梳理了人工智能(AI)、机器学习(ML)、神经网络(NN)和深度学习(DL)之间存在一定的包含关系,以下是它们的关系及各自内容,以及人工智能领域中深度学习分支对比整理。
一.包含关系
人工智能是涵盖最广的领域,它包括了所有使机器能够模拟人类智能的技术。
机器学习则是人工智能的一个子集,专注于让机器通过数据学习,而无需明确编程。
神经网络是机器学习的一个子集,受到人脑结构的启发,
而深度学习则是神经网络的一个子集,使用多层网络处理复杂任务。
人工智能⊃机器学习⊃神经网络⊃深度学习
1.人工智能(AI)
人工智能是范围最广的概念,它旨在让机器模拟人类智能,涵盖机器学习等多种实现途径。
1.1 定义: 指的是使机器能够执行通常需要人类智能的任务,如视觉感知、语言理解、决策和问题解决。
1.2 应用: 聊天机器人、推荐系统、自动驾驶汽车等。
2.机器学习(ML)
机器学习是人工智能的一个重要分支,专注于让机器从数据中学习规律并用于预测和决策。
2.1 定义: 一个子集,使机器能够通过数据学习并做出决策,而无需明确编程。
2.2 类型: 监督学习、无监督学习、强化学习等。
2.3 应用: 邮件过滤、股票交易、医疗诊断等。
3.神经网络(NN)
神经网络是机器学习中的一种模型和算法架构,由大量神经元相互连接构成。
3.1 定义: 受人脑结构启发的机器学习模型,通过节点(神经元)处理信息。
3.2 类型: 卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN)等。
3.3 应用: 图像识别、自然语言处理、游戏AI等。
4.深度学习(DL)
深度学习则是基于神经网络发展起来的机器学习领域的一个分支,强调使用深层神经网络进行学习。
4.1 定义: 使用多层神经网络处理复杂任务,如识别图像中的对象或理解自然语言。
4.2 特点: 自动特征提取、端到端学习等。
4.3 应用: 语音识别、机器翻译、医疗图像分析等。
二.各概念的具体内容
2.1 人工智能
2.1.1 研究内容
- 知识表示:旨在将人类知识以计算机可处理的形式进行表达,以便机器能够理解和运用这些知识。
- 推理与搜索:通过逻辑推理和搜索算法,使机器能够在给定的知识和条件下,推导出新的结论或找到解决问题的路径。
- 自然语言处理:致力于让机器能够理解、生成和处理人类语言,实现人机之间自然流畅的语言交互。
- 计算机视觉:研究如何让机器能够理解和解释图像、视频等视觉信息,如同人类视觉系统一样识别物体、场景等。
- 机器人学:融合机械工程、电子技术、计算机科学等多学科知识,设计和开发能够自主执行任务的机器人。
2.1.2 实现方法
- 符号主义:基于逻辑推理和符号表示,通过构建知识图谱和规则系统来实现智能。
- 连接主义:以神经网络为基础,通过神经元之间的连接和权重调整来学习和处理信息。
- 行为主义:强调智能体与环境的交互,通过试错学习和反馈机制来实现智能行为。
2.1.3 应用领域
广泛应用于智能交通(如自动驾驶、交通流量优化)、医疗诊断(辅助疾病诊断、药物研发)、金融风险预测(信用评估、市场趋势预测)等众多领域。
2.2 机器学习
2.2.1 学习类型
- 监督学习:利用带有标记(标签)的数据进行模型训练。例如回归分析,用于预测连续型数值,如房价预测;分类算法,用于将数据划分到不同类别,如垃圾邮件分类。
- 无监督学习:处理没有标记的数据,旨在发现数据中的内在结构和模式。像聚类分析,将数据点划分为不同的簇,使同一簇内的数据点具有相似性;降维算法,在保留数据主要特征的前提下,降低数据的维度,如主成分分析(PCA)。
- 强化学习:智能体在与环境的交互过程中,通过不断尝试不同的行动并根据环境反馈的奖励信号来学习最优策略。例如,机器人在复杂环境中的导航、游戏中的智能决策等。
2.2.2 其他关键内容
- 模型评估与选择:使用各种评估指标(如准确率、召回率、均方误差等)来衡量模型的性能,并从多个候选模型中选择最优的模型。
- 特征工程:对原始数据进行处理和转换,提取、选择和构建对模型学习有帮助的特征,以提高模型的性能和效果。
2.2.3 应用场景
常用于数据挖掘(从大量数据中发现有价值的信息和模式)、推荐系统(根据用户的历史行为和偏好,为用户推荐相关的产品或内容)等方面。
2.3 神经网络
2.3.1 核心组成
- 神经元模型:模拟生物神经元的信息处理方式,每个神经元接收多个输入信号,通过加权求和并经过激活函数处理后产生输出。
- 网络结构:
- 前馈神经网络:数据从输入层依次向前传递到隐藏层和输出层,各层之间单向连接,不存在反馈连接。
- 反馈神经网络:网络中存在反馈连接,使得神经元的输出可以反馈到输入,常用于处理动态系统和时间序列数据。
- 学习算法:误差反向传播算法(BP 算法)是神经网络中常用的学习算法,用于调整网络权重,使网络输出尽可能接近预期输出。
2.3.2 应用领域
应用于图像识别(如人脸识别、物体检测)、语音识别(语音转文字、语音指令识别)等领域。
2.4 深度学习
2.4.1 深度神经网络架构
- 卷积神经网络(CNN):擅长处理图像等网格数据,通过卷积层、池化层等结构自动提取数据的特征,在图像分类、目标检测等任务中表现出色。
- 循环神经网络(RNN)及变体 LSTM、GRU:适用于处理序列数据,能够捕捉序列中的时间依赖关系。RNN 的变体 LSTM(长短期记忆网络)和 GRU(门控循环单元)解决了传统 RNN 在处理长序列时的梯度消失或爆炸问题,在文本处理(如机器翻译、文本生成)、语音处理等领域广泛应用。
- 生成对抗网络(GAN):由生成器和判别器组成,通过两者的对抗训练,生成器能够生成新的数据样本,如生成逼真的图像、音频等,在图像生成、数据增强等方面有重要应用。
2.4.2 应用领域
应用于图像生成(如生成艺术作品、虚拟场景)、机器翻译(不同语言之间的文本翻译)、自动驾驶(环境感知、决策规划)等前沿领域。
三.人工智能领域中深度学习分支整理对比
1.深度学习分支整理
下表中整理出人工智能领域中深度学习分支的各个对比,除了注意力机制和强化学习中的深度神经网络,其余都属于深度学习分支下特定类型的神经网络.
序号 | 难易程度 | 名称 | 简写 | 适用范围 | 核心概念 | 应用 | 原理 | 特点 | 优势 | 局限性 |
1 | 基础 | 多层感知机(Multi-Layer Perceptron) | MLP | 简单的分类和回归问题 | 全连接层,通过线性组合和非线性激活函数进行计算 | 图像分类、房价预测等 | 基于多层神经元的计算和传播 | 简单直观,计算效率较高 | 结构简单,易于理解和实现 | 容易过拟合,对于复杂数据表达能力有限 |
2 | 中等 | 卷积神经网络(Convolutional Neural Network) | CNN | 图像识别、目标检测 | 卷积核,局部感受野,参数共享 | 图像识别、目标检测 | 通过卷积和池化提取特征 | 局部感知性,参数共享,多层次特征提取,平移不变性 | 对图像等具有空间结构的数据处理效果好,计算效率高 | 对于序列数据等非空间结构数据表现一般 |
3 | 中等 | 循环神经网络(Recurrent Neural Network) | RNN | 自然语言处理、语音识别 | 循环单元,记忆历史信息 | 自然语言处理、语音识别 | 根据历史信息进行预测 | 利用循环结构捕捉序列依赖 | 擅长处理序列数据 | 存在长期依赖问题,梯度消失或爆炸 |
4 | 中等 | 门控循环单元(Gate Recurrent Unit) | GRU | 与RNN类似的序列任务 | 更新门和重置门控制信息流动 | 与RNN类似的序列任务 | 优化了RNN的门控机制 | 计算效率较高,性能较好 | 比LSTM结构简单,一定程度解决长期依赖问题 | 对非常长的序列处理能力仍有限 |
5 | 较难 | 长短时记忆网络(Long Short-Term Memory) | LSTM | 长时间序列预测 | 输入门、遗忘门、输出门 | 长时间序列预测 | 通过复杂的门控机制控制信息 | 对长序列记忆能力强 | 有效解决长期依赖问题 | 参数较多,计算复杂度高 |
6 | 较难 | 变分自编码器(Variational Autoencoder) | VAE | 数据生成、压缩 | 变分推断,潜在变量建模 | 图像生成、特征提取 | 基于概率模型的生成和重构 | 能学习数据的潜在表示 | 生成新的数据,能进行数据压缩 | 生成质量可能不如其他生成模型 |
7 | 较难 | 生成对抗网络(Generative Adversarial Network) | GAN | 图像生成、数据增强 | 生成器与判别器的对抗训练 | 图像创作、提高数据质量 | 对抗博弈生成数据 | 生成效果逼真但不稳定 | 生成逼真的数据 | 训练不稳定,模式崩溃问题 |
8 | 较难 | 注意力机制(Attention Mechanism) | Attention | 自然语言处理、计算机视觉 | 根据重要性分配权重 | 机器翻译、图像分类 | 根据权重分配关注重点 | 提高模型的针对性和效率 | 聚焦关键信息,提升模型性能 | 计算开销可能较大 |
9 | 较难 | 图神经网络(Graph Neural Network) | GNN | 社交网络分析、化学分子结构 | 节点和边的特征学习,消息传递 | 节点分类、链路预测 | 基于图的信息传播和学习 | 适应图结构数据的处理 | 处理图结构数据 | 对大规模图数据计算复杂度高 |
10 | 高级 | 强化学习中的深度神经网络(Deep Neural Network in Reinforcement Learning) | RL-DNN | 游戏策略、机器人控制 | 策略网络,值函数估计 | 智能决策、优化控制 | 通过与环境交互学习策略 | 适应复杂的动态决策环境 | 能够在动态环境中学习最优策略 | 训练难度大,样本效率低 |
2.再进行细化分类
序号 | 类别 | 名称 | 简写 | 难易程度 | 适用范围 | 核心概念 | 应用 | 原理 | 特点 | 优势 | 局限性 | 案例 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 神经网络(深度学习基础模型) | 多层感知机(Multi - Layer Perceptron) | MLP | 较易理解和基础 | 简单数据的分类与回归任务,如手写数字识别的初步尝试 | 通过全连接层,将上一层所有神经元与下一层神经元相连,学习输入与输出间的非线性映射 | 简单的数据分类、回归,如预测产品销量 | 前向传播计算输出,反向传播计算误差并更新权重 | 结构简单,全连接方式直观 | 易于实现和训练,可处理非线性问题 | 参数众多易过拟合,难以处理复杂结构数据,对数据的特征工程要求较高,且计算量随输入维度增加而剧增 | 预测某地区房屋价格,根据房屋面积、房间数量等简单特征进行回归分析 |
2 | 神经网络(深度学习基础模型) | 卷积神经网络(Convolutional Neural Network) | CNN | 中等,需理解卷积运算 | 处理具有网格结构数据,如图像、音频、视频 | 利用卷积核在数据上滑动进行卷积操作,提取局部特征,池化层进行特征压缩 | 图像识别、目标检测、语义分割、语音识别 | 卷积层提取特征,池化层降低数据维度,全连接层完成分类或回归 | 局部连接、权重共享、池化降维 | 减少参数计算量,对平移、旋转等变换有不变性 | 难以捕捉全局特征,对非结构化数据处理能力弱,模型的可解释性较差 | 识别手写数字图像,对猫和狗的图片进行分类 |
3 | 神经网络(深度学习基础模型) | 循环神经网络(Recurrent Neural Network) | RNN | 中等,需理解时间序列处理 | 序列数据处理,如自然语言文本、时间序列预测 | 通过隐藏层的反馈连接,让网络记住之前时间步的信息,处理序列依赖关系 | 自然语言处理(如文本分类、情感分析)、时间序列预测(如股价预测) | 在每个时间步接收输入和上一时刻隐藏状态,更新隐藏状态并输出 | 能处理序列数据,理论上可捕捉长时依赖 | 适用于动态序列建模 | 梯度消失或爆炸问题,难以学习长期依赖,训练效率较低 | 预测股票价格走势,根据前几天的股价预测未来股价 |
4 | 神经网络(深度学习基础模型) | 门控循环单元(Gate Recurrent Unit) | GRU | 较难,涉及门控机制理解 | 长序列数据处理,如自然语言处理、语音识别 | 引入重置门和更新门,控制信息的流入与遗忘,改进 RNN 对长序列处理能力 | 自然语言处理中的机器翻译、语音识别中的语音转文字 | 根据重置门和更新门计算候选隐藏状态,更新隐藏状态 | 计算量小,训练速度快 | 解决 RNN 梯度问题,更好捕捉长时依赖 | 相比 LSTM,复杂任务表现稍弱,对复杂时间序列中的长期依赖捕捉能力仍有限 | 在机器翻译任务中,将一种语言的句子翻译成另一种语言 |
5 | 神经网络(深度学习基础模型) | 长短时记忆网络(Long Short - Term Memory) | LSTM | 较难,门控机制更复杂 | 长序列数据处理,如自然语言处理、时间序列预测 | 输入门、遗忘门和输出门协同工作,选择性记忆和遗忘信息,解决长时依赖 | 自然语言处理(如文本生成、命名实体识别)、时间序列预测(如电力负荷预测) | 输入门控制新信息流入,遗忘门决定保留或丢弃旧信息,输出门确定输出值 | 门控机制强大,能有效处理长序列 | 解决长时依赖问题,在复杂序列任务中表现出色 | 结构复杂,训练时间长,计算量大,内存占用较多 | 预测电力系统的负荷需求,根据历史电力消耗数据进行预测 |
6 | 神经网络(深度学习生成模型) | 变分自编码器(Variational Autoencoder) | VAE | 较难,涉及概率与生成模型 | 数据生成、降维、异常检测等,如图像生成、数据压缩 | 基于变分推断,将输入编码到潜在空间,再从潜在空间解码生成新数据 | 图像生成、数据降维、异常检测 | 编码器将输入映射到潜在空间分布,解码器从潜在空间采样生成数据 | 生成数据具有连续性和多样性 | 可对潜在空间操作,生成新数据样本 | 生成样本细节可能不足,生成质量评估难,对潜在空间的分布假设较为敏感 | 生成新的人脸图像,通过对大量人脸图像学习后生成类似但不同的人脸 |
7 | 神经网络(深度学习生成模型) | 生成对抗网络(Generative Adversarial Network) | GAN | 较难,涉及对抗博弈思想 | 数据生成、图像编辑、无监督学习等,如生成逼真图像、风格迁移 | 生成器和判别器相互对抗,生成器生成数据,判别器判断数据真伪 | 图像生成、图像编辑、数据增强、半监督学习 | 生成器尽量生成逼真数据欺骗判别器,判别器尽量识别假数据,两者在对抗中提升 | 可生成逼真数据,在无监督学习表现出色 | 训练不稳定,易模式坍塌,难以评估生成质量,训练过程需要精心调参 | 生成逼真的风景图片,或者将一种绘画风格迁移到另一张图片上 | |
8 | 深度学习架构改进技术 | 基于注意力机制的模型(Attention Mechanism) | - | 较难,需理解注意力机制原理 | 多种任务,尤其是处理长序列数据,如自然语言处理、图像描述生成 | 为不同输入部分动态分配重要性权重,聚焦关键信息 | 机器翻译、图像字幕生成、语音识别 | 计算输入各部分的注意力分数,据此调整信息传递 | 能够自适应关注输入的不同部分 | 提升对关键信息的捕捉能力,在复杂任务中表现优异 | 计算量增加,注意力机制设计不当可能影响效果,对模型的超参数设置较为敏感 | 在机器翻译中,使模型更关注源语言句子中与目标翻译相关的部分 |
9 | 深度学习架构改进技术 | 图神经网络(Graph Neural Network) | GNN | 较难,涉及图结构数据处理 | 处理具有图结构的数据,如社交网络分析、分子结构预测、知识图谱推理 | 对图中的节点和边进行特征学习,考虑节点间的连接关系 | 社交网络分析(节点分类、链接预测)、化学分子性质预测、推荐系统 | 通过聚合邻居节点信息更新节点特征 | 直接处理图结构数据,捕捉数据的拓扑结构信息 | 能够有效利用数据的结构信息,在图数据任务中优势明显 | 图数据的复杂性导致模型设计和训练难度较大,扩展性较差,处理大规模图数据时效率较低 | 分析社交网络中用户之间的关系,预测用户是否会成为好友 |
10 | 深度学习与强化学习结合 | 深度强化学习模型(Deep Neural Network in Reinforcement Learning) | - | 难,涉及强化学习原理和深度神经网络应用 | 机器人控制、游戏、自动驾驶等复杂决策任务 | 结合深度学习的感知能力和强化学习的决策能力,通过与环境交互学习最优策略 | 机器人导航、游戏智能体训练、自动驾驶决策 | 智能体在环境中执行动作,根据奖励反馈调整策略,利用深度神经网络近似价值函数或策略函数 | 可以处理高维复杂状态空间和动作空间 | 能够在复杂环境中学习到高效的决策策略 | 训练过程不稳定,需要大量的环境交互数据,收敛困难,对环境建模要求高,容易陷入局部最优解 | 训练智能机器人在复杂环境中自主导航,或者训练游戏角色在游戏中取得高分 |
11 | 深度学习基础模型拓展 | 胶囊网络(Capsule Network) | - | 较难,需理解新的神经元结构 | 图像识别、姿态估计等任务,尤其对视角变化、遮挡等情况敏感的场景 | 使用胶囊(一组神经元)来表示实体的各种属性,通过动态路由机制传递信息 | 图像分类、目标检测、三维物体重建 | 胶囊之间通过迭代的动态路由算法,将低层次胶囊的输出传递到高层次胶囊,以更好地捕捉数据中的空间层次关系 | 能够处理数据的空间层次结构,对变换和遮挡更鲁棒 | 训练难度较大,动态路由算法计算成本较高,模型的收敛速度较慢,对硬件要求较高 | 在识别不同角度拍摄的物体图像时,胶囊网络能更好地处理视角变化问题 | |
12 | 深度学习基础模型拓展 | 自注意力网络(Self - Attention Network) | - | 较难,需深入理解注意力机制 | 多种自然语言处理任务,如文本摘要、情感分析,以及图像、音频处理等 | 在序列数据中,每个位置的元素通过计算与其他所有位置元素的关联程度来获取上下文信息 | 文本生成、机器翻译、图像生成 | 通过计算输入序列中各元素之间的注意力分数,得到加权表示,从而捕捉长距离依赖关系 | 可以直接捕捉序列中长距离依赖关系,不依赖于循环或卷积结构 | 计算复杂度较高,对于长序列计算量剧增,在处理短序列时优势不明显 | 在文本生成任务中,模型能更好地捕捉文本前后的语义关联 | |
13 | 深度学习生成模型拓展 | 流模型(Flow - based Model) | - | 难,涉及复杂的数学变换 | 数据生成、密度估计等任务,如生成高分辨率图像、音频合成 | 通过一系列可逆变换将简单分布(如高斯分布)逐步转换为与数据分布匹配的复杂分布 | 图像生成、音频生成、异常检测 | 构建可逆变换的神经网络,通过变换的组合将噪声数据映射到与真实数据相似的分布 | 精确的密度估计,生成样本质量较高,可进行高效的采样和反演 | 设计复杂的可逆变换较为困难,计算成本较高,对数据的分布假设较为严格 | 生成高质量的音乐片段,通过对大量音乐数据学习后生成新的音乐 | |
14 | 深度学习与其他领域结合 | 对抗自编码器(Adversarial Autoencoder) | AAE | 较难,结合生成对抗与自编码器概念 | 数据生成、半监督学习、无监督特征学习等 | 结合自编码器的编码解码结构和生成对抗网络的对抗训练机制,使编码器生成的特征符合某种先验分布 | 图像生成、数据降维、半监督分类 | 自编码器将输入编码为特征,生成器根据特征生成数据,判别器区分生成数据与真实数据,同时约束编码器使特征符合先验 | 能够学习到具有语义信息的特征表示,在半监督学习中表现良好 | 训练过程复杂,需要平衡自编码器和对抗网络的训练,对超参数敏感,模型稳定性较差 | 在半监督图像分类任务中,利用少量标记数据和大量未标记数据进行分类 | |
15 | 深度学习与其他领域结合 | 深度信念网络(Deep Belief Network) | DBN | 较难,涉及逐层训练和无监督预训练 | 图像识别、语音识别、协同过滤等任务 | 由多个受限玻尔兹曼机(RBM)堆叠而成,通过无监督预训练和有监督微调的方式进行学习 | 手写数字识别、推荐系统 | 首先利用无监督学习对每一层 RBM 进行预训练,然后使用有监督学习对整个网络进行微调 | 能够有效处理高维数据,在无监督学习和有监督学习之间架起桥梁 | 训练时间长,模型参数较多,调参复杂,对硬件资源要求高 | 在推荐系统中,根据用户的历史行为数据为用户推荐可能感兴趣的商品 |
由于篇幅较长且整理过程较为繁琐,我计划逐步整理并发布后续内容。我深信,科技应当服务于大众,我希望可以为促进知识的共享与学习,贡献自己绵薄之力,根据我的整理节省后来人的时间。此外补充一下,开源才是未来趋势和大方向,还有一件事 各位新年快乐!2025年事事顺心,万事如意 ,迎接全新的人生!如果对神经网络感兴趣,可以看之前相关博客
深度学习笔记1:自动微分与神经网络实现(附代码)_神经网络自动微分-CSDN博客
整理不易,诚望各位看官点赞 收藏 评论 予以支持,这将成为我持续更新的动力源泉。若您在阅览时存有异议或建议,敬请留言指正批评,让我们携手共同学习,共同进取,吾辈自当相互勉励!
相关文章:
重新整理机器学习和神经网络框架
本篇重新梳理了人工智能(AI)、机器学习(ML)、神经网络(NN)和深度学习(DL)之间存在一定的包含关系,以下是它们的关系及各自内容,以及人工智能领域中深度学习分支对比整理。…...
AJAX详解
AJAX是前后端交互的重要工具 结合前后端交互基础理解:前后端交互详解(建议收藏)-CSDN博客 1. AJAX - 到底什么是Ajax? ajax 全名 async javascript and XML(异步JavaScript和XML),是一种用于向服务器异步发送 HTTP 请求并接收响应的技术。 XML 指可扩…...
golang中的异常处理机制
今天是2024最后一天,祝大家新年梦想成真,继续我的魅力golang,昨天发的错误处理,是明显的可预见、可恢复的问题,然而,不可预见的问题,往往更多,golang也有自己的一套,完全…...
HTML5 开关(Toggle Switch)详细讲解
HTML5 开关(Toggle Switch)详细讲解 1. 任务概述 开关(Toggle Switch)是一种用于表示二元状态(如开/关)的用户界面控件。用户可以通过点击开关来切换状态,常见于设置选项、开关功能等场景。 2…...
【前端】Node.js使用教程
目录 一、?Node.js开发环境和编译 1.1 安装Node.js 1.2 创建一个Node.js项目 1.3 编写Node.js程序 1.4 运行Node.js程序 1.5 使用Node.js模块 二、高级的Node.js编程概念和示例 2.1 异步编程 2.2 错误处理 2.3 网络请求 2.4 构建Web服务器 2.5 数据库交互 三、No…...
在CodeBlocks搭建SDL2工程构建TFT彩屏模拟器虚拟TFT彩屏幕显示
在CodeBlocks搭建SDL2工程构建TFT彩屏模拟器虚拟TFT彩屏幕显示 参考文章源码下载地址一、SDL2的创建、初始化、退出二、系统基本Tick、彩屏刷新、按键事件三、彩屏获取与设置颜色四、彩屏填充颜色及清屏五、彩屏显示中文和英文字符串六、彩屏显示数字七、彩屏初始化八、主函数测…...
BurstAttention:高效的分布式注意力计算框架
BurstAttention:高效的分布式注意力计算框架 在现代大型语言模型(LLMs)的应用中,提升注意力机制的计算效率已成为研究的热点。当前,提升计算效率主要有两种方法:一种是优化单设备的计算和存储能力…...
sentinel集成nacos启动报[check-update] get changed dataId error, code: 403错误排查及解决
整合nacos报403错误 因为平台写的一个限流代码逻辑有问题,所以准备使用sentinel来限流。平台依赖里面已经引入了,之前也测试过,把sentinel关于nacos的配置加上后,启动一直输出403错误 [fixed-10.0.20.188_8848-test] [check-upda…...
[TOTP]android kotlin实现 totp身份验证器 类似Google身份验证器
背景:自己或者公司用一些谷歌身份验证器或者microsoft身份验证器,下载来源不明,或者有广告,使用不安全。于是自己写一个,安全放心使用。 代码已开源:shixiaotian/sxt-android-totp: android totp authenti…...
IDEA+Docker一键部署项目SpringBoot项目
文章目录 1. 部署项目的传统方式2. 前置工作3. SSH配置4. 连接Docker守护进程5. 创建简单的SpringBoot应用程序6. 编写Dockerfile文件7. 配置远程部署 7.1 创建配置7.2 绑定端口7.3 添加执行前要运行的任务 8. 部署项目9. 开放防火墙的 11020 端口10. 访问项目11. 可能遇到的问…...
【发票提取明细+发票号改名】批量提取PDF电子发票明细导出Excel表格并改名技术难点,批量PDF多区域内容识别提取明细并用内容改名的小结
1、图片版的发票提取表格改名 【批量图片发票识别表格】批量图片发票的提取Excel表格和提取字段改名,扫描发票识别表格,拍照发票识别表格,图片发票识别改名我们在工作中很多扫描发票,拍照发票,需要整理成excel表格&am…...
pyQT + OpenCV相关练习
一、设计思路 1、思路分析与设计 本段代码是一个使用 PyQt6 和 OpenCV 创建的图像处理应用程序。其主要功能是通过一个图形界面让用户对图片进行基本的图像处理操作,如灰度化、翻转、旋转、亮度与对比度调整,以及一些滤镜效果(模糊、锐化、边…...
石岩路边理发好去处
周末带娃去罗租公园玩,罗租公园旁边就是百佳华和如意豪庭小区,发现如意豪庭小区对面挺多路边理发摊点 理发摊点聚焦在这里的原因是刚好前面城管来了暂时避避,例如还有一个阿姨剪到一半就跟着过来。这里的城管只是拍了一处没有摊位的地方&…...
音视频入门基础:MPEG2-PS专题(2)——使用FFmpeg命令生成ps文件
一、错误的命令 通过FFmpeg命令可以将mp4文件转换为ps文件,PS文件中包含PS流数据。 由于PS流/PS文件对应的FFInputFormat结构为: const FFInputFormat ff_mpegps_demuxer {.p.name "mpeg",.p.long_name NULL_IF_CONFIG_SMALL…...
整合版canal ha搭建--基于1.1.4版本
开启MySql Binlog(1)修改MySql配置文件(2)重启MySql服务,查看配置是否生效(3)配置起效果后,创建canal用户,并赋予权限安装canal-admin(1)解压 canal.admin-1…...
[python SQLAlchemy数据库操作入门]-15.联合查询,跨表获取股票数据
哈喽,大家好,我是木头左! 在开始探讨如何利用SQLAlchemy实现复杂的联合查询之前,首先需要深入理解其核心组件——对象关系映射(ORM)。ORM允许开发者使用Python类来表示数据库中的表,从而以一种更直观、面向对象的方式来操作数据库。 SQLAlchemy中的JOIN操作详解 在SQLA…...
PTA数据结构作业一
6-1 链表的插入算法 本题要求实现一个插入函数,实现在链表llist中的元素x之后插入一个元素y的操作。 函数接口定义: int InsertPost_link(LinkList llist, DataType x, DataType y); 其中 llist是操作的链表,x是待插入元素y的前驱节点元素…...
前端(九)js介绍(2)
js介绍(2) 文章目录 js介绍(2)一、函数1.1函数的两种形式1.2函数的作用域1.3声明与提升 二、bom操作三、dom操作 一、函数 1.1函数的两种形式 //有参函数 //js中的函数只能返回一个值,如果要返回多个需要放在数组或对象中 function func(a,b){return ab } func(1,…...
CUTLASS:高性能 CUDA 线性代数模板库详解
CUTLASS:高性能 CUDA 线性代数模板库详解 引言什么是 CUTLASS?CUTLASS 的主要特点: CUTLASS 的用途如何安装 CUTLASS1. 环境准备2. 下载 CUTLASS3. 构建 CUTLASS4. 设置环境变量5. 验证安装 使用 CUTLASSCUTLASS 的优势总结 引言 在深度学习…...
关于CISP报名费用详情
CISP即“注册信息安全专业人员”,是中国信息安全测评中心实施的国家认证项目,旨在培养信息安全领域的专业人才。对于有意报考CISP的考生而言,了解报名考试费用是备考过程中不可或缺的一环。 CISP的报名考试费用主要包括培训费用、考试费用、…...
css 关于flex布局中子元素的属性flex
css flex布局中子元素的属性flex 1. flex 是 flex-grow、flex-shrink 和 flex-basis 的简写 语法格式: flex: [flex-grow] [flex-shrink] [flex-basis];各属性解析: flex-grow: 子元素如何按比例分配父元素的 剩余空间。 默认值:0&#…...
功率器件热设计基础(四)——功率半导体芯片温度和测试方法
/ 前言 / 功率半导体热设计是实现IGBT、碳化硅SiC高功率密度的基础,只有掌握功率半导体的热设计基础知识,才能完成精确热设计,提高功率器件的利用率,降低系统成本,并保证系统的可靠性。 功率器件热设计基础系列文章会…...
OpenStack系列第四篇:云平台基础功能与操作(Dashboard)
文章目录 1. 镜像(Image)添加镜像查看镜像删除镜像 2. 卷(Volume)创建卷查看卷删除卷 3. 网络(虚拟网络)创建网络查看网络删除网络 4. 实例类型创建实例类型查看实例类型删除实例类型 4. 密钥对(…...
WebSocket封装
提示:记录工作中遇到的需求及解决办法 文章目录 前言二、背景三、WebSocket3.1 什么是 WebSocket ?为什么使用他?四、封装 WebSocket4.1 Javascript 版本4.2 Typescript 版本4.3 如何使用?五、我的痛点如何处理前言 本文将介绍 WebSocket 的封装,比如:心跳机制,重连和一…...
面试题解,JVM的运行时数据区
一、请简述JVM运行时数据区的组成结构及各部分作用 总览 从线程持有的权限来看 线程私有区 虚拟机栈 虚拟机栈是一个栈结构,由许多个栈帧组成,一个方法分配一个栈帧,线程每执行一个方法时都会有一个栈帧入栈,方法执行结束后栈帧…...
【Ubuntu使用技巧】Ubuntu22.04无人值守Crontab工具实战详解
一个愿意伫立在巨人肩膀上的农民...... Crontab是Linux和类Unix操作系统下的一个任务调度工具,用于周期性地执行指定的任务或命令。Crontab允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。这些任务可以按照分钟、小时、日…...
Caffeine Cache Java缓存组件
缓存组件Caffeine Cache 定义介绍整合springboot用法整合spring-boot-starter-cache用法 定义介绍 特性 高性能:基于高效并发设计和 TinyLFU 算法,命中率高。 丰富策略:支持容量限制、过期时间、异步加载、自定义清理策略。 统计监控&#x…...
电子电气架构 --- 什么是自动驾驶技术中的域控制单元(DCU)?
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...
Redis核心技术知识点全集
Redis数据结构和常用命令 1. String字符串2. Hash哈希3. List列表4. Set集合5. Sorted Set有序集合6. Redis常用命令参考Redis事务机制...
【每日学点鸿蒙知识】文件读写、屏幕宽度亮度、扫一扫权限、编码器问题、wlan设置
1、参照文档,在操作文件时,读取不到内容或出现程序闪退? 参照文档,进行文件写入和读取时,出现读取不到或闪退 export function createFile() {// 获取应用文件路径let context getContext(this) as common.UIAbilit…...
后端开发-Maven
环境说明: windows系统:11版本 idea版本:2023.3.2 Maven 介绍 Apache Maven 是一个 Java 项目的构建管理和理解工具。Maven 使用一个项目对象模型(POM),通过一组构建规则和约定来管理项目的构建…...
LiteFlow 流程引擎引入Spring boot项目集成pg数据库
文章目录 官网地址简要项目引入maven 所需jar包配置 PostgreSQL 数据库表使用LiteFlow配置 yml 文件通过 代码方式使用 liteflow数据库sql 数据在流程中周转 官网地址 https://liteflow.cc/ 简要 如果你要对复杂业务逻辑进行新写或者重构,用LiteFlow最合适不过。…...
电子电气架构 --- 汽车电子电器设计概述
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...
API 设计:从基础到最佳实践
https://levelup.gitconnected.com/api-design-101-from-basics-to-best-practices-a0261cdf8886 在本次深入研究中,我们将从基础开始,逐步了解 API 设计,并逐步实现定义卓越 API 的最佳实践。 作为开发人员,您可能熟悉其中的许多…...
简易内存池(中)
提示:文章 文章目录 前言一、背景二、第二版代码用例2用例3用例4用例5 总结 前言 前期疑问: 本文目标: 一、背景 最近 二、 针对上述失败用例,修改代码如下 第二版代码 #include <stdbool.h> #include <stdio.h>…...
svn不能添加.a文件
解决办法 在home目录下有一个.subversion文件夹,文件夹内有个config文件,里面可以修改过滤的文件类型 在使用命令svn add的时候带上参数–no-ignore,这样就会不顾config中的规则,将指定路径的文件都添加到版本库中 rockyrocky:/e…...
PH47代码框架 24241231 重要更新
仪式感一下:2024年最后一天,发布 PH47 代码框架的一次重要更新。当然这并不是有意的,而是直到现在才把更新的所有工作全部做完(希望确实如此)。 本次更新要点: 1、加入多IMU支持。本次更新正式加入对 MPU65…...
小程序信息收集(小迪网络安全笔记~
免责声明:本文章仅用于交流学习,因文章内容而产生的任何违法&未授权行为,与文章作者无关!!! 附:完整笔记目录~ ps:本人小白,笔记均在个人理解基础上整理,…...
用户界面的UML建模07
4.2 抽象表示层的行为(Abstract Presentation Behaviour) AbstractForm 类定义了一组如下所示的四种操作: showForm() , getData() , sendConfirmation() 和sendCancellation()。在该阶段的设计过程(desig…...
LabVIEW手部运动机能实验系统
在运动科学、人机交互和康复训练等领域,手部运动功能的研究具有重要的应用价值。开发了一个基于LabVIEW的手部运动机能实验系统设计,该系统利用力量作为关键参数,通过实时数据采集和反馈帮助受试者完成精确的手部动作,同时为研究人…...
Java Map 源码解析:核心原理与应用
Java Map 源码解析:核心原理与应用 Java 的 Map 接口是集合框架中一个重要的组成部分,专门用于存储键值对。其强大的功能和灵活的实现使其在各种应用场景中得到了广泛的使用。本文面向对 Java 集合框架有一定了解的开发者,通过对 Map 接口及…...
基于Mosquito源码理解MQTT5.0的属性概念
MQTT 5.0协议相比之前的版本(如MQTT 3.1.1)增加了很多属性,这些属性分布于报文的可变头部(Variable Header)和有效载荷(Payload)中。这些属性大大增强了协议的可扩展性和灵活性,使其能够更好地适应现代物联网应用的复杂需求。 属性的定义在源码包mosquitto-2.0.18/inc…...
easyui textbox使用placeholder无效
easyui textbox使用placeholder无效 在easyui 的textbox控件,请使用data-options 设定 示例 <input type text class easyui-textbox data-options "prompt:请输入您的邮箱"/>...
java AQS
什么是AQS AQS(AbstractQueuedSynchronizer,抽象队列同步器)是 Java 中并发控制的一种机制,位于 java.util.concurrent.locks 包下,它为构建锁、信号量等同步工具提供了一个框架。AQS 通过 队列 来管理多个线程之间的…...
机器人对物体重定向操作的发展简述
物体重定向操作的发展简述 前言1、手内重定向和外部重定向2、重定向原语3、重定向状态转换网络4、连续任意姿态的重定向5、利用其他环境约束重定向总结Reference 前言 对于一些特殊的任务(如装配和打包),对物体放置的位姿由明确的要求&#…...
数据结构与算法之动态规划: LeetCode 72. 编辑距离 (Ts版)
编辑距离 https://leetcode.cn/problems/edit-distance/description/ 描述 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数你可以对一个单词进行如下三种操作: 插入一个字符删除一个字符替换一个字符 示例 1 输入&…...
vue3 Teleport瞬移组件
Teleport是瞬移组件,也称为传送门组件 它是一个可以使元素从一个组件转到另一个组件的组件。 如对话框、自定义菜单、警告提示、徽章,以及许多其他需要出现在特殊位置的自定义UI组件。假设现在页面中有两个元素,分别为div元素和button按钮元…...
Go语言学习路线
以下是一个较为系统的Go语言学习路线: 一、基础阶段 环境搭建与工具链熟悉 安装Go语言开发环境。在Go官方网站(https://golang.org/dl/)下载适合您操作系统的安装包并完成安装。 配置Go环境变量,如GOPATH和GOROOT。GOROOT是Go语…...
摄像头监视脚本
摄像头监视脚本,若检测到摄像头画面有变化,保存这一段视频 一、使用方法 1.运行脚本 默认参数Threshold3, Period3, path./recordings python cam.py --threshold30 --period3 --path./recordings 2.参数说明 threshold:摄像头捕获到的画面变化量阈值…...
【Leecode】Leecode刷题之路第97天之交错字符串
题目出处 97-交错字符串-题目出处 题目描述 个人解法 思路: todo代码示例:(Java) todo复杂度分析 todo官方解法 97-交错字符串-官方解法 方法1:动态规划 思路: class Solution {public boolean isInte…...