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

[预备知识]4. 概率基础

人工智能

概率基础

本章节介绍深度学习中的概率基础知识,包括基本概念、概率分布和统计推断。

1. 概率基础

1.1 基本概念

  • 随机变量:可以取不同值的变量,其值由随机试验的结果决定
  • 概率分布:描述随机变量取值的可能性分布
  • 条件概率:在给定某事件发生的条件下,另一事件发生的概率

概率基础

本章节介绍深度学习中的概率基础知识,包括基本概念、概率分布和统计推断。

1. 概率基础

1.1 基本概念

概率公理

概率论的基础由以下三条公理构成,这些公理为所有概率计算提供了数学基础:

  1. 非负性
    P ( A ) ≥ 0 P(A) \geq 0 P(A)0
    任何事件的概率都是非负的。例如,抛硬币出现正面的概率不可能是负数。

  2. 规范性
    P ( Ω ) = 1 P(\Omega) = 1 P(Ω)=1
    所有可能事件的概率总和为1。例如,抛硬币(正面或反面)的概率总和必然为1。

  3. 可列可加性
    P ( ⋃ i = 1 ∞ A i ) = ∑ i = 1 ∞ P ( A i ) (当事件  A i 互斥时) P\left(\bigcup_{i=1}^\infty A_i\right) = \sum_{i=1}^\infty P(A_i) \quad \text{(当事件 } A_i \text{ 互斥时)} P(i=1Ai)=i=1P(Ai)(当事件 Ai 互斥时)
    互斥事件(即不同时发生的事件)的并集概率等于各事件概率之和。例如,抛一次骰子出现1点或2点的概率是 1 / 6 + 1 / 6 = 1 / 3 1/6 + 1/6 = 1/3 1/6+1/6=1/3

# 示例:计算骰子概率
dice_outcomes = [1, 2, 3, 4, 5, 6]
prob_even = 3 / 6  # 偶数事件(2,4,6)的概率
print(f"骰子出现偶数的概率: {prob_even}")  # 输出 0.5(符合规范性)

1.2 联合概率与条件概率

联合概率

联合概率 P ( X = x , Y = y ) P(X=x, Y=y) P(X=x,Y=y) 表示两个事件同时发生的概率。例如,同时抛硬币和骰子,硬币为正面且骰子为3的概率。

条件概率

条件概率 P ( Y = y ∣ X = x ) P(Y=y | X=x) P(Y=yX=x) 表示在已知事件 X = x X=x X=x 发生的条件下,事件 Y = y Y=y Y=y 发生的概率。其计算公式为:
P ( Y = y ∣ X = x ) = P ( X = x , Y = y ) P ( X = x ) P(Y=y | X=x) = \frac{P(X=x, Y=y)}{P(X=x)} P(Y=yX=x)=P(X=x)P(X=x,Y=y)

示例:在天气预测中,已知今天下雨的条件下,明天下雨的概率。

# 联合概率表(X: 天气,Y: 是否带伞)
#          带伞(Y=0)  不带伞(Y=1)
# 晴天(X=0)   0.1        0.5
# 雨天(X=1)   0.3        0.1
import matplotlib.pyplot as plt
import seaborn as sns
import torch
joint_probs = torch.tensor([[0.1, 0.5], [0.3, 0.1]])# 计算边缘概率 P(X=雨天)
p_rain = joint_probs[1, :].sum()  # 0.3 + 0.1 = 0.4# 计算条件概率 P(带伞 | 雨天)
p_umbrella_given_rain = joint_probs[1, 0] / p_rain  # 0.3 / 0.4 = 0.75
print(f"雨天带伞的条件概率: {p_umbrella_given_rain:.2f}")
plt.figure(figsize=(8,6))
sns.heatmap(joint_probs.numpy(), annot=True, fmt=".2f",cmap="YlGnBu",xticklabels=['Y=0', 'Y=1'],yticklabels=['X=0', 'X=1'])
plt.title("联合概率分布热力图 P(X,Y)", fontsize=14)
plt.xlabel("Y变量", fontsize=12)
plt.ylabel("X变量", fontsize=12)
plt.show()

2. 概率分布

2.1 离散分布

2.1.1 伯努利分布

定义:描述单次二元试验(成功/失败)的概率分布。
概率质量函数(PMF)
P ( X = k ) = { p if  k = 1 ( 成功 ) 1 − p if  k = 0 ( 失败 ) P(X=k) = \begin{cases} p & \text{if } k=1 \quad (\text{成功}) \\ 1-p & \text{if } k=0 \quad (\text{失败}) \end{cases} P(X=k)={p1pif k=1(成功)if k=0(失败)

参数

  • p p p:成功的概率(如抛硬币正面的概率)
p = 0.6  # 成功概率为60%
bern_dist = torch.distributions.Bernoulli(probs=p)
samples = bern_dist.sample((1000,))  # 生成1000次试验样本print(f"理论成功概率: {p}")
print(f"实际样本成功比例: {samples.float().mean():.2f}")  # 约0.6

2.1.2 二项分布

定义:描述 n n n 次独立伯努利试验中成功次数的分布。
PMF
P ( X = k ) = C ( n , k ) p k ( 1 − p ) n − k P(X=k) = C(n, k) p^k (1-p)^{n-k} P(X=k)=C(n,k)pk(1p)nk
其中 C ( n , k ) = n ! k ! ( n − k ) ! C(n, k) = \frac{n!}{k!(n-k)!} C(n,k)=k!(nk)!n! 是组合数。

参数

  • n n n:试验次数
  • p p p:单次成功的概率

应用场景

  • 抛10次硬币出现正面的次数
  • 100件产品中的次品数量
n, p = 10, 0.3
binom_dist = torch.distributions.Binomial(n, probs=p)
k = 4  # 成功4次的概率
prob_k = binom_dist.log_prob(k).exp()  # 计算P(X=4)print(f"在{n}次试验中成功{k}次的概率: {prob_k:.3f}")  # 约0.200

2.2 连续分布

2.2.1 正态分布(高斯分布)

定义:自然界中大量现象服从的分布(如身高、测量误差)。
概率密度函数(PDF)
f ( x ) = 1 σ 2 π e − ( x − μ ) 2 2 σ 2 f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(x)=σ2π 1e2σ2(xμ)2

参数

  • μ \mu μ:均值(分布中心)
  • σ \sigma σ:标准差(分布宽度)

特性

  • 68% 的数据落在 [ μ − σ , μ + σ ] [\mu-\sigma, \mu+\sigma] [μσ,μ+σ]
  • 95% 的数据落在 [ μ − 2 σ , μ + 2 σ ] [\mu-2\sigma, \mu+2\sigma] [μ2σ,μ+2σ]
mu, sigma = 0.0, 1.0
normal_dist = torch.distributions.Normal(mu, sigma)# 计算区间概率
x1, x2 = -1, 1
prob = normal_dist.cdf(torch.tensor(x2)) - normal_dist.cdf(torch.tensor(x1))
print(f"数据在[{x1}, {x2}]的概率: {prob:.3f}")  # 输出约0.682

2.2.2 均匀分布

定义:在区间 [ a , b ] [a, b] [a,b] 内所有值出现的概率相等。
PDF
f ( x ) = { 1 b − a a ≤ x ≤ b 0 其他 f(x) = \begin{cases} \frac{1}{b-a} & a \leq x \leq b \\ 0 & \text{其他} \end{cases} f(x)={ba10axb其他

应用场景

  • 随机数生成
  • 无先验知识时的默认分布
a, b = 2.0, 5.0
uniform_dist = torch.distributions.Uniform(a, b)# 计算概率密度在区间内的值
x = 3.5
pdf_value = torch.exp(uniform_dist.log_prob(x))
print(f"x=3.5处的概率密度: {pdf_value:.3f}")  # 1/(5-2) ≈ 0.333s

3. 统计推断

3.1 最大似然估计(MLE)

核心思想:选择使观测数据出现概率最大的参数。
数学形式
θ ^ MLE = arg ⁡ max ⁡ θ ∏ i = 1 n P ( x i ∣ θ ) \hat{\theta}_{\text{MLE}} = \arg\max_\theta \prod_{i=1}^n P(x_i | \theta) θ^MLE=argθmaxi=1nP(xiθ)

示例:估计正态分布的均值和方差
假设数据 { x 1 , . . . , x n } \{x_1, ..., x_n\} {x1,...,xn} 服从 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2),MLE估计为:
μ ^ = 1 n ∑ i = 1 n x i , σ ^ 2 = 1 n ∑ i = 1 n ( x i − μ ^ ) 2 \hat{\mu} = \frac{1}{n}\sum_{i=1}^n x_i, \quad \hat{\sigma}^2 = \frac{1}{n}\sum_{i=1}^n (x_i - \hat{\mu})^2 μ^=n1i=1nxi,σ^2=n1i=1n(xiμ^)2

# 生成正态分布样本
true_mu, true_sigma = 5.0, 2.0
data = torch.normal(true_mu, true_sigma, size=(1000,))# MLE估计参数
mu_hat = data.mean()
sigma_hat = torch.sqrt(torch.mean((data - mu_hat)**2))  # 注意这是有偏估计print(f"真实参数: μ={true_mu}, σ={true_sigma}")
print(f"MLE估计: μ̂={mu_hat:.3f}, σ̂={sigma_hat:.3f}")  # 结果接近真实值

3.2 假设检验(t检验)

目的:判断两组数据的均值是否有显著差异。
t统计量公式
t = x ˉ 1 − x ˉ 2 s 1 2 n 1 + s 2 2 n 2 t = \frac{\bar{x}_1 - \bar{x}_2}{\sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}} t=n1s12+n2s22 xˉ1xˉ2
其中 x ˉ i \bar{x}_i xˉi 为样本均值, s i 2 s_i^2 si2 为样本方差, n i n_i ni 为样本量。

结果解读

  • p值:若 p < 0.05,拒绝原假设(认为均值不同)
  • t值:绝对值越大,差异越显著
# 生成两组数据(假设是模型A和模型B的准确率)
model_A = torch.normal(0.85, 0.1, (100,))  # 均值85%,标准差10%
model_B = torch.normal(0.88, 0.1, (100,))  # 均值88%# 独立双样本t检验
from scipy.stats import ttest_ind
t_stat, p_value = ttest_ind(model_A.numpy(), model_B.numpy())print(f"t统计量: {t_stat:.3f}")
print(f"p值: {p_value:.3f}")
if p_value < 0.05:print("结论: 模型B的准确率显著高于模型A")
else:print("结论: 无显著差异")

4. 深度学习中的概率应用

4.1 交叉熵损失

数学定义:衡量预测分布 q q q 与真实分布 p p p 的差异:
H ( p , q ) = − ∑ i = 1 C p i log ⁡ q i H(p, q) = -\sum_{i=1}^C p_i \log q_i H(p,q)=i=1Cpilogqi

在分类任务中的应用

  • 真实分布 p p p 是 one-hot 编码(如标签 [0, 1, 0])
  • 预测分布 q q q 是 softmax 输出(如 [0.2, 0.7, 0.1])
# 三分类任务示例
logits = torch.tensor([[1.2, 3.0, 0.5], [0.5, 2.0, 1.5]])  # 模型原始输出
targets = torch.tensor([1, 2])  # 真实类别索引# 计算交叉熵损失
loss = F.cross_entropy(logits, targets)
print(f"交叉熵损失: {loss:.3f}")  # 输出约0.551# 手动验证
probs = F.softmax(logits, dim=1)  # 转换为概率
true_probs = torch.zeros_like(probs).scatter(1, targets.unsqueeze(1), 1.0)
manual_loss = - (true_probs * torch.log(probs)).sum(dim=1).mean()
print(f"手动计算损失: {manual_loss:.3f}")  # 应与上述结果一致

4.2 变分自编码器(VAE)

核心思想:通过概率模型学习数据的潜在表示。
变分下界(ELBO)
L = E q ( z ∣ x ) [ log ⁡ p ( x ∣ z ) ] − KL ( q ( z ∣ x ) ∥ p ( z ) ) \mathcal{L} = \mathbb{E}_{q(z|x)}[\log p(x|z)] - \text{KL}(q(z|x) \| p(z)) L=Eq(zx)[logp(xz)]KL(q(zx)p(z))

  • 第一项:重构损失,要求解码后的数据与输入相似
  • 第二项:KL散度,约束潜在变量分布接近先验分布(通常为标准正态)
class VAE(nn.Module):def __init__(self, input_dim=784, latent_dim=20):super().__init__()# 编码器:输入 -> 潜在分布的参数 (μ, logσ²)self.encoder = nn.Linear(input_dim, latent_dim*2)# 解码器:潜在变量 -> 重构数据self.decoder = nn.Sequential(nn.Linear(latent_dim, 512),nn.ReLU(),nn.Linear(512, input_dim),nn.Sigmoid())def reparameterize(self, mu, logvar):std = torch.exp(0.5*logvar)  # 标准差eps = torch.randn_like(std)   # 随机噪声return mu + eps * std        # 重参数化技巧def forward(self, x):# 编码h = self.encoder(x)mu, logvar = h.chunk(2, dim=1)# 采样潜在变量z = self.reparameterize(mu, logvar)# 解码重构x_recon = self.decoder(z)return x_recon, mu, logvar# 损失函数计算
def vae_loss(recon_x, x, mu, logvar):BCE = F.binary_cross_entropy(recon_x, x, reduction='sum')  # 重构损失KLD = -0.5 * torch.sum(1 + logvar - mu.pow(2) - logvar.exp())  # KL散度return BCE + KLD
import numpy as np
import torch
import matplotlib.pyplot as plt# 模拟抛硬币实验
num_flips = 1000
flips = np.random.choice(['正面', '反面'], size=num_flips)# 计算概率
prob_head = np.mean(flips == '正面')
print(f"正面概率: {prob_head:.3f}")

本章介绍了概率分布和统计推断的基本概念,以及在深度学习中的应用。通过这些内容,我们可以更好地理解和利用概率模型,为深度学习模型的训练和评估提供基础。

相关文章:

[预备知识]4. 概率基础

概率基础 本章节介绍深度学习中的概率基础知识&#xff0c;包括基本概念、概率分布和统计推断。 1. 概率基础 1.1 基本概念 随机变量&#xff1a;可以取不同值的变量&#xff0c;其值由随机试验的结果决定概率分布&#xff1a;描述随机变量取值的可能性分布条件概率&#x…...

第33周JavaSpringCloud微服务 电商进阶开发

一、课程介绍 1. 定时任务 课程主题 &#xff1a;Spring Cloud 电商进阶开发定时任务定义 &#xff1a;学习什么是定时任务。定时任务学习内容 &#xff1a;定时任务实现方法、cron 表达式。定时任务实践 &#xff1a;在 Spring 中使用 schedule 注解&#xff0c;定期关闭过期…...

基于cubeMX的hal库STM32实现硬件IIC通信控制OLED屏

1、通常的方法是使用软件模拟IIC来实现OLED屏的显示控制&#xff0c;这里用STM32单片机的硬件IIC来实现OLED屏的显示&#xff0c;主控芯片为STM32F103RCT6&#xff0c;正点原子mini开发板。 2、cubemx配置过程 &#xff08;1&#xff09;配置时钟和下载 &#xff08;2&#x…...

游戏工作室为何要更换IP进行多开?工作室使用代理IP要注意什么?

在当今的游戏产业中&#xff0c;游戏工作室为了提升效率、规避风险或突破平台限制&#xff0c;常常需要通过更换IP进行多开操作。这一现象背后涉及技术、商业规则和网络安全等多重因素&#xff0c;而代理IP的选择与使用也成为工作室运营中的关键环节。以下是关于游戏工作室为何…...

postgreSQL 如何使用 dblink

SELECT b.id, flow_name, user_id,u.name FROM bpm_form_info b JOIN vrms_user u on b.user_idu.id dblink SELECT b.id, flow_name, user_id,u.name FROM bpm_form_info b – vrms_user u on b.user_idu.id JOIN dblink( ‘dbnameuser_db userpostgres passwordWs199612’,…...

121.在 Vue3 中使用 OpenLayers 实现去掉鼠标右键默认菜单并显示 Feature 信息

🎯 实现效果 👇 本文最终实现的效果如下: ✅ 地图初始化时绘制一个多边形; ✅ 鼠标 右键点击地图任意位置; ✅ 若命中 Feature,则弹出该图形的详细信息; ✅ 移除浏览器默认的右键菜单,保留地图交互的完整控制。 💡 整个功能基于 Vue3 + OpenLayers 完成,采用 Com…...

复盘20250422

深度分析及个股推荐 1. 行业前景与个股逻辑梳理 从提供的股票信息来看&#xff0c;主要涉及以下行业&#xff1a;合成尼古丁&#xff08;电子烟&#xff09;、化工、跨境支付、跨境电商、农药、食品饮料、光刻机、电子商务、造纸等。需结合行业景气度、政策支持、公司核心竞争…...

MQ底层原理

RabbitMQ 概述 RabbitMQ 是⼀个开源的⾼性能、可扩展、消息中间件&#xff08;Message Broker&#xff09;&#xff0c;实现了 Advanced Message Queuing Protocol&#xff08;AMQP&#xff09;协议&#xff0c;可以帮助不同应⽤程序之间进⾏通信和数据交换。RabbitMQ 是由 E…...

30分钟编写十大排序算法完成

import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List;//排序算法 public class test_04_22 {public static void swap(int[] nums, int i, int j){int temp nums[i];nums[i] nums[j];nums[j] temp;}//冒泡排序-稳定…...

为什么家电主板采用GND走线而不是整面铺GND铜

不管什么接地方式&#xff0c;本质是为了使得电流的回流路径最短。只要电流的回流路径最短&#xff0c;怎么都可以&#xff01; 如下图的芯片的一个信号的回流路径&#xff0c;是一个很糟糕的接地&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&a…...

NVIDIA 自动驾驶技术见解

前言 参与 NVIDIA自动驾驶开发者实验室 活动&#xff0c;以及解读了 NVIDIA 安全报告 自动驾驶 白皮书&#xff0c;本文是我的一些思考和见解。自动驾驶技术的目标是为了改善道理安全、减少交通堵塞&#xff0c;重塑更安全、高效、包容的交通生态。在这一领域&#xff0c;NVI…...

真我推出首款 AI 翻译耳机,支持 32 种语言翻译

2025 年 4 月 22 日&#xff0c;真我手机官微宣布&#xff0c;其首款 AI 翻译耳机 Buds Air7 Pro 将于 4 月 23 日 16 时正式上市1。这款耳机接入了讯飞星火认知大模型 4.0 Ultra&#xff0c;支持中文与 32 种语言面对面翻译&#xff0c;以及同声传译功能。 除了 AI 翻译功能&a…...

如何简化复杂流程提升执行效率

简化复杂流程、提升执行效率的关键在于&#xff1a;聚焦核心目标、减少冗余环节、推动系统自动化、赋能一线决策、流程分级设计。其中&#xff0c;聚焦核心目标 是流程优化的第一步。流程不该为了“流程而流程”&#xff0c;而应服务于业务目标。Gartner在《数字化运营报告》中…...

动态规划算法:完全背包类问题

前言 现在我们考虑下面的问题&#xff1a; &#xff08;1&#xff09;小明有一个背包&#xff0c;背包容积为v&#xff0c;有m种物品&#xff0c;其中第i种物品的价值为val[i]&#xff0c;体积为t[i]&#xff0c;每样物品有无限个&#xff0c;请问背包内物品总价值最大为多少?…...

数据存储方式补码原码反码

1. 关于数据存储&#xff08;补码、原码、反码&#xff09; 有符号类型&#xff08;Signed Types&#xff09; 存储方式&#xff1a;现代计算机普遍采用 补码&#xff08;Two’s Complement&#xff09; 存储有符号整数。 原码&#xff1a;最高位为符号位&#xff08;0正&…...

【AAudio】A2dp sink创建音频轨道的源码流程分析

一、AAudio概述 AAudio 是 Android 8.0(API 级别 26)引入的 C/C++ 原生音频 API,专为需要低延迟、高性能音频处理的应用设计,尤其适用于实时音频应用(如音频合成器、音乐制作工具、游戏音效等)。 1.1 主要特点 低延迟:通过减少音频数据在内核与用户空间之间的拷贝,直…...

黑马点评之Feed流技术实现关注推送与滚动分页查询

Feed流 关注推送也叫做Feed流&#xff0c;直译为“投喂”。为用户持续的提供“沉浸式体验”&#xff0c;通过无限下拉刷新获取新的信息。 Feed流&#xff08;信息流&#xff09;是一种常见的内容分发形式&#xff0c;通过动态更新的内容列表向用户展示个性化或实时信息。典型应…...

vue3+canvas裁剪框样式【前端】

目录 canvas绘制裁剪框&#xff1a;拖拽改变框的大小&#xff1a;圆圈样式&#xff1a;方块样式&#xff1a; canvas绘制裁剪框&#xff1a; // 绘制裁剪框 const drawCropRect (ctx: CanvasRenderingContext2D): void > {if (cropRect.value.width > 0 && crop…...

Python 设计模式:模板模式

1. 什么是模板模式&#xff1f; 模板模式是一种行为设计模式&#xff0c;它定义了一个操作的算法的骨架&#xff0c;而将一些步骤延迟到子类中。模板模式允许子类在不改变算法结构的情况下&#xff0c;重新定义算法的某些特定步骤。 模板模式的核心思想是将算法的固定部分提取…...

usb2.0的硬件知识(一)

一、USB2.0的硬件知识 1.1 USB2.0速率 USB 2.0协议支持3种速率&#xff1a;低速(Low Speed&#xff0c;1.5Mbps)、全速(Full Speed, 12Mbps)、高速(High Speed, 480Mbps)&#xff1b;USB Hub、USB设备&#xff0c;也分为低速、全速、高速三种类型。 1.2 USB2.0硬件线序组成 U…...

LangGraph(二)——QuickStart样例中的第二步

目录 1. 添加依赖2. 官网QuickStart——第二步&#xff1a;用工具增强聊天机器人2.1 Tavily Search2.2 简单测试Tavily Search2.3 添加带工具的ChatBot node2.4 添加tool node2.5 添加条件边2.6 可视化StateGraph2.7 构建聊天循环 参考 1. 添加依赖 LangGraph(一)——QuickStar…...

机器学习第二篇 多变量线性回归

数据集&#xff1a;世界幸福指数数据集中的变量有幸福指数排名、国家/地区、幸福指数得分、人均国内生产总值、健康预期寿命、自由权、社会支持、慷慨程度、清廉指数。我们选择GDP per Capita和Freedom&#xff0c;来预测幸福指数得分。 文件一&#xff1a;linear&#xff0c;…...

【MCP Node.js SDK 全栈进阶指南】中级篇(3):MCP高级资源设计

前言 在MCP TypeScript-SDK的初级篇中,我们介绍了资源开发的基础知识,包括静态资源与动态资源的创建、资源模板设计与参数提取,以及基本的资源列表与发现机制。随着应用规模的扩大和复杂性的提高,我们需要更加高级的资源设计方案来应对各种挑战。 本文作为中级篇的第三篇…...

PostgreSQL 常用日志

PostgreSQL 常用日志详解 PostgreSQL 提供了多种日志类型&#xff0c;用于监控数据库活动、排查问题和优化性能。以下是 PostgreSQL 中最常用的日志类型及其配置和使用方法。 一、主要日志类型 日志类型文件位置主要内容用途服务器日志postgresql-<日期>.log服务器运行…...

PostgreSQL认证培训推荐机构

首先来看一张2025年4月份db-engines上的数据库排行情况&#xff0c;前三名是雷打不动的Oracle、MySQL、Microsoft SQL Server&#xff0c;排名第四的就是我们今天的主角 - PostgreSQL数据库&#xff0c;从这张图上可以看出&#xff0c;PostgreSQL数据库的上升超非常明显&#x…...

2025年NISP一级题库试题

NISP一级考试只考50道单选题&#xff0c;难度不算大&#xff0c;话不多说&#xff0c;直接上硬菜&#xff01; 1、物理销毁的方式不包括&#xff08;&#xff09; .消磁 B.焚化炉烧毀 C.反复覆写数据 &#xff24;.机器硏磨粉碎 2、信息安全应该建立贯穿信息系统的整个生命周期…...

pip install pymysql报错

python安装pymysql报错解决 【现象】 很多时候会出现安装pip包报错的问题&#xff0c;看过很多网上教程以及ai都是如下说法&#xff1a; 镜像问题pip版本问题ssh证书问题网络问题… 在遇见这些情况时&#xff0c;上述的各种解决方法都一一实验过但最后都是ERROR。 【解决办…...

达梦官方管理工具 SQLark 更新--不仅支持达梦、Oracle、MySQL,还新增 PostgreSQL 数据库!

SQLark 是一款面向信创应用开发者的数据库开发和管理工具&#xff0c;用于快速查询、创建和管理不同类型的数据库系统&#xff0c;已支持达梦、Oracle、MySQL数据库&#xff1b;在最新的 V3.4 版本中&#xff0c;SQLark 新增了对 PostgreSQL 的支持&#xff0c;兼容 PostgreSQL…...

Windows 同步-互锁变量访问

互锁变量访问 应用程序必须同步对多个线程共享的变量的访问。 应用程序还必须确保对这些变量的作以原子方式执行&#xff08;完全或根本不执行&#xff09;。 对正确对齐的 32 位变量的简单读取和写入是原子作。 换句话说&#xff0c;你最终不会只更新变量的一部分;所有位都以…...

前端学习笔记

文章目录 前端主要内容基于脚手架创建前端工程vue的基本使用axios 路由Vue-Router路由组成嵌套路由 状态管理 vuex心得 前端主要内容 HTML、CSS JavaScript axios Vue基础语法&#xff08;router、vuex、typescript&#xff09; Element UI 基于脚手架创建前端工程 node.js …...

2025-04-22| Docker: --privileged参数详解

在 Docker 中&#xff0c;--privileged 是一个运行容器时的标志&#xff0c;它赋予容器特权模式&#xff0c;大幅提升容器对宿主机资源的访问权限。以下是 --privileged 的作用和相关细节&#xff1a; 作用 完全访问宿主机的设备&#xff1a; 容器可以访问宿主机的所有设备&am…...

Java八股 深入理解Spring的AOP 面向切面编程 底层 保姆级教程 手写例子

目录 概念 AOP 术语 1. 连接点&#xff08;Jointpoint&#xff09;&#xff1a; 2. 切入点&#xff08;Pointcut&#xff09;&#xff1a; 3. 通知&#xff08;Advice&#xff09;&#xff1a; 4. 方面/切面&#xff08;Aspect&#xff09;&#xff1a; 5. 引入&#xff…...

macOS安全隐私最佳实践分析

1. 引言 随着数字世界的不断扩展&#xff0c;个人和组织面临的安全与隐私威胁也日益增加。作为专业的安全合规与隐私保护研究团队&#xff0c;Kaamel 对 macOS 系统的安全隐私现状进行了全面分析&#xff0c;并提出了一系列最佳实践建议&#xff0c;旨在帮助用户更好地保护自己…...

WeakSet:JavaScript 中容易被忽视的“弱集合”

目录 WeakSet 详解 基本概念 创建 WeakSet WeakSet 的主要方法 WeakSet 的特性 WeakSet 的使用场景 1. 避免内存泄漏&#xff08;DOM 元素管理&#xff09; 2. 临时缓存系统 3. 私有属性模拟 4. 防止循环引用 与其他数据结构的对比 1. WeakSet 没有实例属性 2. We…...

Discuz!+DeepSeek:传统论坛的智能化蜕变之路

在数字化浪潮中&#xff0c;社区论坛作为互联网早期的产物&#xff0c;面临着功能单一、用户体验滞后的发展瓶颈。虎跃办公&#xff08;https://www.huyueapp.com&#xff09;通过Discuz!搭建的网址导航网站&#xff0c;在集成DeepSeek的AI能力后&#xff0c;成功实现了从工具导…...

vs2017中,将CMake构建目录设置在项目目录下

修改CMake构建目录位置 在Visual Studio 2017中&#xff0c;可以通过以下方法将CMake构建目录设置在项目目录下&#xff1a; 修改CMakeSettings.json文件‌&#xff1a; 在VS中生成CMakeSettings.json文件&#xff08;通过点击编译平台按钮如x64-Debug或x64-Release&#xf…...

跨平台.NET 版本 使用率排名

截至2025年4月&#xff0c;跨平台.NET版本的安装使用率排名主要基于版本支持状态、性能优化和企业迁移趋势。以下是结合微软官方政策、行业动态及开发者行为分析的综合结论&#xff1a; 1. .NET 8 (LTS) 占据主导地位 支持周期&#xff1a;作为2023年11月发布的长期支持&…...

基于无障碍跳过广告-基于节点跳过广告

2025-04-22 一些广告的关闭是叉图标&#xff0c;获取到的信息也没什么特征&#xff0c;这种广告怎么跳过 用autojs无障碍的节点定位ui控件位置&#xff0c;点击...

STM32提高篇: WIFI通讯

STM32提高篇: WIFI通讯 一.WIFI通讯介绍1.WiFi的频段5G和2.4G2.WiFi的信道二.ESP32固件烧录及驱动1.一个AT指令响应的完成2.测试其他指令三.Wifi功能初始化和TCP通讯四.volatile关键字一.WIFI通讯介绍 Wi-Fi,又称“无线网路”,是Wi-Fi联盟的商标,一个基于IEEE 802.11标准的…...

资本怪兽贝莱德投资数据分析报告-独家

贝莱德概述 贝莱德集团是全球最大的资产管理公司&#xff0c;其管理的资产规模达到了11.6万亿美元(约合人民币84.18万亿元)&#xff0c;这个数字相当于中国2024年GDP的62%。贝莱德通过收购李嘉诚旗下的43个全球港口资产&#xff0c;将在全球运营约100个港口。此外&#xff0c;…...

操作系统-用户级-内核级线程

一、先明确几个基本概念&#xff1a; 用户级线程&#xff08;ULT&#xff09;&#xff1a; 完全由用户空间的线程库&#xff08;如 pthread 或 green threads&#xff09;管理。 操作系统内核对此一无所知。 切换线程时&#xff0c;不需要进入内核&#xff0c;效率高&#xf…...

【深度学习】LoRA:低秩适应性微调技术详解

LoRA&#xff1a;低秩适应性微调技术详解 文章目录 LoRA&#xff1a;低秩适应性微调技术详解1. 引言2. LoRA原理解析2.1 核心思想2.2 数学表达 3. LoRA实现细节3.1 适用层选择3.2 缩放因子3.3 初始化策略 4. 代码实现示例5. LoRA在实际应用中的优势5.1 内存效率5.2 训练速度5.3…...

研发效率破局之道阅读总结(3)工程优化

研发效率破局之道阅读总结(3)工程优化 Author: Once Day Date: 2025年4月22日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: 程序的艺术_Once-Day…...

树莓派超全系列教程文档--(40)树莓派config.txt旧版GPIO控制、超频及条件过滤器

树莓派config.txt旧版GPIO控制、超频及条件过滤器 传统GPIO控制enable_jtag_gpio 传统超频选项超频never_over_voltagedisable_auto_turbo 遗留条件过滤器The [HDMI:*] 过滤器 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 传统GPIO控制 &…...

网络基础概念(下)

网络基础概念&#xff08;上&#xff09;https://blog.csdn.net/Small_entreprene/article/details/147261091?sharetypeblogdetail&sharerId147261091&sharereferPC&sharesourceSmall_entreprene&sharefrommp_from_link 网络传输的基本流程 局域网网络传输流…...

DES、3DES、SM4 加密算法简介

1. DES&#xff08;Data Encryption Standard&#xff09; 设计时间&#xff1a;1975 年&#xff08;IBM 开发&#xff0c;1977 年被 NIST 采纳为美国联邦标准&#xff09;。 密钥长度&#xff1a;64 位&#xff08;实际有效 56 位 8 位校验&#xff09;。 分组长度&#xf…...

如何在 Ansys Icepak AEDT 中设置多个流程以加快仿真速度?

您将学习如何进行正确的设置&#xff0c;以通过增加进程数量来加快仿真速度。 Ansys Icepak AEDT 需要与 Icepak Classic 不同的设置。 要设置要在 Ansys Icepak AEDT 中使用的进程数&#xff0c;您需要按照以下步骤作&#xff1a; 首先&#xff0c;转到“工具 - >选项 - …...

【MCP Node.js SDK 全栈进阶指南】初级篇(2):MCP基础服务器开发

引言 在上一篇文章中,我们详细介绍了MCP开发环境的搭建。本文作为MCP TypeScript-SDK系列的第二篇,将深入探讨MCP基础服务器开发的核心内容,包括服务器创建与生命周期管理、McpServer与Server的区别与选择、各种配置选项的详解,以及基本启动与调试技巧。通过本文学习,你将…...

客户端 AI 与服务器端 AI 的深度比较及实践建议?

1. 性能与延迟 ​​客户端AI&#xff08;In-Browser AI&#xff09;​​&#xff1a; // 使用TensorFlow.js在浏览器中进行图像分类 const model await tf.loadLayersModel(local-model/model.json);// 实时摄像头处理 const video document.getElementById(webcam); const…...

【(保姆级教程)Ubuntu24.10下部署Dify】

目录 一、下载Ubuntu二、安装Ubuntu三、在 Ubuntu 上安装 Docker Engine1、设置Docker的apt仓库2、安装 Docker 包 四、在 Ubuntu 上安装 Docker Desktop1、先决条件2、下载最新 DEB 包3、安装软件包4、启动 Docker Desktop5、检查版本 五、克隆 Dify 代码仓库六、启动 Dify1、…...