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

【通俗理解】AI的两次寒冬:从感知机困局到深度学习前夜

AI的两次寒冬:从感知机困局到深度学习前夜

引用(中英双语)

  • 中文
    “第一次AI寒冬,是因为感知机局限性被揭示,让人们失去了对算法可行性的信心。”
    “第二次AI寒冬,则是因为专家系统的局限性和硬件成本的高企,触发资金与热情的退潮。”
  • 英文
    “The first AI winter was triggered by the limitations of the perceptron, which shattered faith in the feasibility of these algorithms.”
    “The second AI winter was driven by the limits of expert systems and high hardware costs, causing a retreat of funding and enthusiasm.”

关键词:

#AI寒冬
#感知机
#梯度下降
#神经网络
#符号主义
#专家系统
#深度学习
#过拟合
#软硬件瓶颈
#CSDN


具体实例与推演

假设我们需要分析一个简单的感知机模型在不同维度下的表现,并观察它在多层网络中的表现。当我们试图用传统的感知机解决非线性问题时,就会遭遇无法收敛的困境。这种尴尬在20世纪60年代末与70年代初集中爆发,也埋下了第一次AI寒冬的种子

  • 步骤

    1. 建立单层感知机模型并尝试解决异或(XOR)等非线性问题。
    2. 引入多层网络(BP算法),看其在复杂数据集上的表现。
    3. 讨论参数规模、硬件计算能力与算法局限性,探寻AI寒冬的成因。
  • 应用公式

    y = θ ( ∑ i w i x i + b ) y = \theta\Bigl(\sum_{i} w_i x_i + b\Bigr) y=θ(iwixi+b)

    E = 1 2 ∑ ( y pred − y true ) 2 E = \frac{1}{2}\sum (y_{\text{pred}} - y_{\text{true}})^2 E=21(ypredytrue)2

    w i ← w i − η ∂ E ∂ w i w_i \leftarrow w_i - \eta \frac{\partial E}{\partial w_i} wiwiηwiE

    Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\Bigl(\frac{QK^T}{\sqrt{d_k}}\Bigr)V Attention(Q,K,V)=softmax(dk QKT)V


第一节:感知机与第一次AI寒冬

1. 感知机模型的公式解释与案例

1.1 感知机模型
感知机模型公式通俗解释
y = θ ( ∑ i w i x i + b ) y = \theta\Bigl(\sum_{i} w_i x_i + b\Bigr) y=θ(iwixi+b)输出 (y) 类似一个“是否通过考核”的判定,(\theta(\cdot)) 是阶跃函数。
变量释义
( w_i ) : 权重像评委对各项打分的权重,决定各因素影响大小
( x_i ) : 输入参赛选手在各项测试中的成绩
( b ) : 偏置顶层政策或特殊加分项
( \theta(\cdot) ) : 激活函数类似及格线,只要超过这个线就“通过”,否则就是“不通过”
1.2 感知机的应用意义和缺点
  • 应用意义感知机是神经网络历史的开端,提供了一个将输入线性组合后进行分类的基石。
  • 缺点无法解决线性不可分问题,例如XOR异或问题。该问题在1969年Minsky和Papert的著作中被深度剖析,导致了社会对感知机的失望和第一波“AI寒冬”。

打比方

  • 如果把“线性可分”比作普通的“直线划分”,那么感知机就像一条简单直线,只能把二维平面分成两个区域。如果数据呈现“弯曲”的分界线,感知机就无能为力了。

第二节:BP算法与第二次AI寒冬

2.1 BP(反向传播)核心公式

公式作用
E = 1 2 ∑ ( y pred − y true ) 2 E = \frac{1}{2}\sum (y_{\text{pred}} - y_{\text{true}})^2 E=21(ypredytrue)2均方误差 (MSE)度量预测值与真实值之差距
w i ← w i − η ∂ E ∂ w i w_i \leftarrow w_i - \eta \frac{\partial E}{\partial w_i} wiwiηwiE梯度下降更新权重,减少预测误差
变量释义
( E ) : 误差函数像“考核指标”,越小越好
( y_{\text{pred}} ) : 预测输出神经网络对输入数据给出的判断
( y_{\text{true}} ) : 真实值数据集中样本对应的正确标签
( \eta ) : 学习率步伐大小,过大容易振荡,过小收敛慢
2.2 反向传播的应用价值与局限
  • 应用价值:在多层网络中,BP算法让网络能学习非线性映射,大大扩展了感知机的应用范围,为后续深度学习奠定基础。
  • 局限:在硬件计算能力不足、训练数据不足以及网络深度受限时,BP算法会面临梯度消失或振荡等问题。加之80年代后期到90年代初期专家系统热潮退却,资金和人力投入也随之骤降,引发了第二次“AI寒冬”。

打比方

  • BP算法就像在“后厨”中不断试错调味,想让菜肴更接近理想口味。但如果人手不足、食材匮乏(数据少)、炉火(硬件计算能力)不够旺,再好的厨艺(BP算法)也难以做出让人满意的菜。

第三节:公式探索与推演运算

探讨神经网络的核心数学时,我们常会对照其他相关公式。这里列出一些常见公式,并对比其异同。

3.1 常见相似公式对比

公式/定律共同点不同点
Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\Bigl(\frac{QK^T}{\sqrt{d_k}}\Bigr)V Attention(Q,K,V)=softmax(dk QKT)V都是神经网络中常见机制,基于加权和。Attention主要用于对序列信息做加权,BP用于端到端的梯度优化。
Cauchy-Schwarz不等式都能对运算范围进行一定限制或提供判断标准。C-S不等式在向量空间中度量相似度,神经网络偏重训练误差或注意力机制。
热力学第二定律都反映“不可逆性”或“单调变化”的概念。热力学描述宏观世界熵增,AI训练则是误差下降,与统计学习理论紧密相关。
专家系统推理规则都关注“条件-结论”的推断,涉及系统的“知识与推断框架”。专家系统基于规则库,神经网络基于数据驱动;二者在某些应用侧面相互补充。

3.2 推导过程(以梯度下降为例)

  1. 定义误差函数
    E = 1 2 ∑ ( y pred − y true ) 2 E = \frac{1}{2}\sum (y_{\text{pred}} - y_{\text{true}})^2 E=21(ypredytrue)2
  2. 计算梯度
    ∂ E ∂ w i = ∑ ( y pred − y true ) ⋅ ∂ y pred ∂ w i \frac{\partial E}{\partial w_i} = \sum (y_{\text{pred}} - y_{\text{true}}) \cdot \frac{\partial y_{\text{pred}}}{\partial w_i} wiE=(ypredytrue)wiypred
  3. 参数更新
    w i ← w i − η ∂ E ∂ w i w_i \leftarrow w_i - \eta \frac{\partial E}{\partial w_i} wiwiηwiE

在AI第二次寒冬时期,网络结构较浅,硬件性能有限,导致实际训练时收敛慢或难以成功;而深层网络更容易出现梯度消失,这也是当时人们对神经网络失望的重要原因之一。


第四节:核心代码与可视化

以下示例代码使用加利福利亚数据集,构建一个简单的多层感知机,演示网络训练过程及可视化。我们将使用多种可视化方式,包括散点图、柱状图、饼图,添加网格与注释,并利用SHAP库解释模型决策过程。

请注意:波士顿住房数据集在新版的 scikit-learn 中已被标注为“可能带有偏见”,仅在此作为教学演示用;实际项目需谨慎处理。

# This code performs the following functions:
# 1. Loads the 加利福利亚 Housing dataset.
# 2. Constructs a simple MLP to predict house prices.
# 3. Trains the network using gradient descent (via scikit-learn MLP).
# 4. Visualizes data and results with Seaborn and Matplotlib in various styles.
# 5. Utilizes SHAP to explain model decisions.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPRegressor
from sklearn.metrics import mean_squared_error# -------------- 1. Load the California Housing dataset --------------
california = fetch_california_housing()
X = california.data
y = california.target
feature_names = california.feature_names# Convert to DataFrame for easier processing
df = pd.DataFrame(X, columns=feature_names)
df['PRICE'] = y# -------------- 2. Split the data into training and testing sets --------------
X_train, X_test, y_train, y_test = train_test_split(df.drop('PRICE', axis=1), df['PRICE'], test_size=0.2, random_state=42)scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)# -------------- 3. Construct a simple MLP Regressor and train it --------------
mlp = MLPRegressor(hidden_layer_sizes=(16, 8),activation='relu',solver='adam',learning_rate_init=0.01,max_iter=500,random_state=42)mlp.fit(X_train_scaled, y_train)# Evaluate the model
y_pred = mlp.predict(X_test_scaled)
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error on Test Set:", mse)# -------------- 4. Data Visualization --------------
sns.set_theme(style="whitegrid")# 4.1 Scatter plot of predictions
plt.figure(figsize=(8,6))
plt.scatter(y_test, y_pred, marker='o', color='blue', label='Predictions')
plt.plot([y_test.min(), y_test.max()],[y_test.min(), y_test.max()],color='red', linestyle='--', label='Ideal Line')
plt.xlabel("True House Price")
plt.ylabel("Predicted House Price")
plt.title("Scatter Plot of True vs Predicted")
plt.legend(loc='best')
plt.grid(True)
plt.annotate('Close to Ideal', xy=(25, 25), xytext=(30, 40),arrowprops=dict(facecolor='black', arrowstyle='->'))
plt.show()# 4.2 Bar chart of feature importances (using MLP.coefs_)
# For MLP, there's no direct "feature_importance_", we approximate by sum of absolute weights for the first layer
feature_importance = np.sum(np.abs(mlp.coefs_[0]), axis=1)
plt.figure(figsize=(10,6))
plt.bar(feature_names, feature_importance, color='skyblue', edgecolor='black')
plt.xlabel('Features')
plt.ylabel('Approx Importance')
plt.title('Feature Importances (Sum of Absolute Weights in First Hidden Layer)')
plt.axhspan(0, np.mean(feature_importance), color='yellow', alpha=0.3,label='Below average importance')
plt.legend()
plt.xticks(rotation=45)
plt.grid(True)
plt.show()# 4.3 Pie chart of feature importances
plt.figure(figsize=(6,6))
plt.pie(feature_importance, labels=feature_names, autopct='%1.1f%%', startangle=140)
plt.title('Feature Importance Distribution')
plt.show()# 4.4 Additional scatter plots with different line/markers
plt.figure(figsize=(8,6))
markers = ['o', 's', '^', '*', 'D', 'X', 'P', 'v', '+', '.']
for i, col in enumerate(feature_names[:5]):plt.scatter(X_train[col], y_train, marker=markers[i % len(markers)], label=col)
plt.xlabel('Feature Value')
plt.ylabel('House Price')
plt.title('Scatter Plots of First 5 Features vs. Price')
plt.legend(loc='upper right')
plt.grid(True)
plt.show()# -------------- 5. SHAP analysis --------------
# Install shap if needed: !pip install shap
import shapexplainer = shap.Explainer(mlp, X_train_scaled)
shap_values = explainer(X_test_scaled)# SHAP Summary plot
shap.summary_plot(shap_values, features=X_test_scaled, feature_names=feature_names)# SHAP dependence plot for top 2 features
shap.plots.scatter(shap_values[:, 0], color=shap_values)
shap.plots.scatter(shap_values[:, 1], color=shap_values)# Print intermediate data shapes for debugging
print("X_train_scaled shape:", X_train_scaled.shape)
print("y_train shape:", y_train.shape)
print("MLP hidden layers:", mlp.hidden_layer_sizes)

在这里插入图片描述

代码可视化要点

  1. 不同的线型和标记:在散点图中采用多种标记(如 o, s, ^ 等)区分特征。
  2. 添加网格plt.grid(True) 帮助读者更容易跟踪数据点位置。
  3. 优化标题和标签:标题与坐标轴标签均指明含义。
  4. 使用不同的颜色散点图、柱状图、饼图都选用对比度较高的配色方案。
  5. 添加图例:并通过 loc='best' 选择合适位置。
  6. 高亮关键区域:在柱状图中采用 plt.axhspan() 凸显平均线以下区域。
  7. 添加注释:使用 plt.annotate() 指出与理想线较为接近的区域等。

代码输出说明

输出内容描述
测试集均方误差(MSE)评估网络预测效果,数值越小表示模型对房价预测更准确。
散点图(真实值 vs. 预测值)展示模型表现,理想情况下数据点应靠近对角线。
特征重要性(柱状图+饼图)虽然MLP没有明确的特征重要性,但可以用绝对权重求和近似衡量每个特征的影响力。
多特征散点图可视化不同特征与价格之间的关系,强调线型、标记与网格以提高可读性。
SHAP可视化使用SHAP解释模型决策过程,展示各特征对预测结果的正负影响程度。
中间调试信息包含数据集维度、MLP的网络结构等,方便排查潜在问题。

代码功能实现

  1. 数据加载与清洗:载入加利福利亚住房数据并进行标准化处理。
  2. 网络构建与训练:采用多层感知机并通过误差反向传播来学习参数。
  3. 评估与可视化:使用散点图、柱状图、饼图、SHAP可视化等多方式展现模型表现与特征影响。
  4. 多标注方式的图形输出:使用网格、注释、不同线型与颜色等提升可读性。

第五节:参考信息源

  1. AI历史与寒冬

    • Minsky, M., & Papert, S. (1969). Perceptrons. MIT Press.
    • Russell, S. J., & Norvig, P. (2009). Artificial Intelligence: A Modern Approach. Prentice Hall.
  2. BP算法与神经网络

    • Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning Representations by Back-Propagating Errors. Nature.
    • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
  3. SHAP解释模型

    • Lundberg, S. M., & Lee, S. I. (2017). A Unified Approach to Interpreting Model Predictions. Advances in Neural Information Processing Systems.
  4. Scikit-learn与数据集

    • Pedregosa, F., et al. (2011). Scikit-learn: Machine Learning in Python. Journal of Machine Learning Research, 12, 2825-2830.

参考文献链接

  1. Minsky, M., & Papert, S. (1969). Perceptrons. MIT Press.
  2. Russell, S., & Norvig, P. (2009). Artificial Intelligence: A Modern Approach.
  3. Rumelhart, D. E., et al. (1986). Learning representations by back-propagating errors.
  4. Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
  5. Lundberg, S. M., & Lee, S. I. (2017). A Unified Approach to Interpreting Model Predictions.
  6. Pedregosa, F., et al. (2011). Scikit-learn: Machine Learning in Python.

结语

两次AI寒冬体现了技术发展的曲折性:

  • 第一次感知机的局限性使得线性模型萎靡不振;
  • 第二次专家系统瓶颈**、硬件落后与投资潮水褪去,AI再度进入沉寂。
    然而,这些“寒冬”也为后续的深度学习、硬件革新与数据驱动模式提供了养分。如今,AI在大规模算力与数据的支撑下,开启了
    第三波浪潮**,也正因此,我们更应当记住历史教训,让技术发展更加稳健与长远。

相关文章:

【通俗理解】AI的两次寒冬:从感知机困局到深度学习前夜

AI的两次寒冬:从感知机困局到深度学习前夜 引用(中英双语) 中文: “第一次AI寒冬,是因为感知机局限性被揭示,让人们失去了对算法可行性的信心。” “第二次AI寒冬,则是因为专家系统的局限性和硬…...

141.《mac m系列芯片安装mongodb详细教程》

文章目录 下载从官网下载安装包 下载后双击解压出文件夹安装文件名修改为 mongodb配置data存放位置和日志log的存放位置启动方式一方式二方式二:输入mongo报错以及解决办法 本人电脑 m2 pro,属于 arm 架构 下载 官网地址: mongodb官网 怎么查看自己电脑应该下载哪个版本,输入…...

【Linux】sed编辑器

一、基本介绍 sed编辑器也叫流编辑器(stream editor),它是根据事先设计好得一组规则编辑数据流。 交互式文本编辑器(如Vim)中,可以用键盘命令交互式地插入、删除或替换文本数据。 sed编辑器是根据命令处理…...

unity3d-搞个场景漫游如何实现Alpha

要处理两个问题: 如何设置地面人不掉下去 方法一、 游戏物体加刚体,将游戏物体和地面加collider。如果是地形,可以使用 Terrain Collider;如果是简单的平面,可以添加 Box Collider 或者 Mesh Collider(如果…...

概率基本概念 --- 离散型随机变量实例

条件概率&独立事件 随机变量 - 离散型随机变量 - 非离散型随机变量 连续型随机变量奇异性型随机变量 概率表示 概率分布函数概率密度函数概率质量函数全概率公式贝叶斯公式 概率计算 数学期望方差协方差 计算实例 假设有两个离散型随机变量X和Y,它们代…...

oscp备考 oscp系列——Kioptix Level 1靶场 古老的 Apache Vuln

目录 前言 1. 主机发现 2. 端口扫描 3. 指纹识别 4. 目录扫描 5. 漏洞搜索和利用 前言 oscp备考,oscp系列——Kioptix Level 1靶场 Kioptix Level 1难度为简单靶场,主要考察 nmap的使用已经是否会看输出,以及是否会通过应用查找对应漏…...

【简博士统计学习方法】3. 统计学习方法的三要素

3. 统计学习方法的三要素 3.1 监督学习的三要素 3.1.1 模型 假设空间(Hypothesis Space):所有可能的条件概率分布或决策函数,用 F \mathcal{F} F表示。 若定义为决策函数的集合: F { f ∣ Y f ( X ) } \mathcal{F…...

UnionTech OS Server 20 网页无法访问yum源地址

统信yum地址 https://euler-packages.chinauos.com/server-euler/fuyu/1060/everything/sw_64/Packages/ 浏览器访问401报错无权限,查看linux uos环境下yum配置的用户名和密码 cat /etc/yum/vars/auth_* 然后自己组装生成Basic Authorization def generate_basic_…...

WPF区域导航+导航参数使用+路由守卫+导航日志

背景:使用ContentControl控件实现区域导航是有Mvvm框架的WPF都能使用的,不限于Prism 主要是将ContenControl控件的Content内容在ViewModel中切换成不同的用户控件 下面是MainViewModel: private object body;public object Body {get { retu…...

jvm基础

jvm的基本结构‌‌ ‌类加载器(ClassLoader)‌:加载class文件到内存中进行使用。 ‌运行时数据区(Runtime Data Area)‌:这是JVM在运行Java程序期间管理的内存区域,包括方法区(Meta…...

kaggle竞赛:纽约出租车行程时间NYC Taxi Trip Duration

1.引言 作为一名(坦白说有点懒的)图像处理方向的研究生,说实话最近新开一个坑,可能是因为要寒假了比较无聊,这次带来的系列是kaggle数据处理竞赛的经典例题:纽约出租车行程时间问题。希望大家多多支持&…...

Python提取目标Json键值:包含子嵌套列表和字典

目标:取json中所有的Name、Age字典 思路:递归处理字典中直接包含子字典的情况, import jsondef find_targ_dicts(data,key1,key2):result {}if isinstance(data, dict):if key1 in data and key2 in data: # 第一层字典中包含key1和key2re…...

<div>{{ $t(“collectionPlan“) }}</div> 中的$t是什么

$t是Vue I18n插件提供的一种方法,用于根据当前应用的语言环境来获取相应的翻译文本。 以下是一个简单的示例,展示如何在Vue I18n中定义消息: const i18n new VueI18n({locale: en, // 设置默认语言messages: {en: {collectionPlan: Collec…...

医学图像分析工具01:FreeSurfer || Recon -all 全流程MRI皮质表面重建

FreeSurfer是什么 FreeSurfer 是一个功能强大的神经影像学分析软件包,广泛用于处理和可视化大脑的横断面和纵向研究数据。该软件由马萨诸塞州总医院的Martinos生物医学成像中心的计算神经影像实验室开发,旨在为神经科学研究人员提供一个高效、精确的数据…...

win32汇编环境,在对话框中画五边形与六边形

;运行效果 ;win32汇编环境,在对话框中画五边形与六边形 ;展示五边形与六边形的画法 ;将代码复制进radasm软件里,直接编译可运行.重要部分加备注。 ;下面为asm文件 ;>>>>>>>>>>>>>>>>>>>>>>>>>&g…...

小白学Pytorch

小白学Pytorch 发现一个比较好的教程,对于自己来说比较合适,适合从零开始的教程。 1、搭建一个简单的网络 https://www.cnblogs.com/PythonLearner/p/13587092.html 搭建网络这步说的比较清楚: 我们使用nn包中的Sequential搭建网络&#…...

[A-25]ARMv8/v9-GIC的系统架构(中断的硬件基础)

ver0.1 前言 我们在观看很多的影视剧过程中,尤其是军旅体裁类型的布景中,经常会看见高级干部的办公桌上都会有几部电话机。这样的电话可不能小看,重要的事情尤其是突发和紧急的情况都要通过这几部电话第一时间通知给决策者。这几部电话,必须举报几个特点:及时性好、稳定…...

毕业项目推荐:基于yolov8/yolov5的行人检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…...

学习threejs,导入AWD格式的模型

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.AWDLoader AWD模型加…...

C# 事件

目录 1、事件模型的5个组成部分2、使用内置委托类型声明事件2.1 EventHandler2.1.1 &#xff1f;2.1.2 this2.1.3 使用匿名函数和lamda表达式2.1.3.1 匿名函数2.1.3.2 lamda表达式 2.1.4 异常处理 2.2 EventHandler<TEventArgs> 3、使用自定义委托类型声明事件3.1 事件的…...

WebRtc02: WebRtc架构、目录结构、运行机制

整体架构 WebRtc主要分为三层&#xff1a; CAPI层&#xff1a;外层调用Session管理核心层&#xff1a;包括视频引擎、音频引擎、网络传输 可由使用者重写视频引擎&#xff1a;编解码器、视频缓存、视频增强音频引擎&#xff1a;编解码器、音频缓存、回音消除、降噪传输&#x…...

耐高压26V输入5V升压充电8.4V芯片

HU6877作为一款集成了26V高耐压保护的5V升压至8.4V两节锂电池充电管理IC&#xff0c;凭借其高效升压、智能充电管理、多重安全保护及高耐压特性&#xff0c;在高端手电筒、便携式医疗设备、无人机等领域展现出了广泛的应用前景。本文将详细探讨HU6877的技术特点、工作原理、应用…...

【连续学习之LwM算法】2019年CVPR顶会论文:Learning without memorizing

1 介绍 年份&#xff1a;2019 期刊&#xff1a; 2019CVPR 引用量&#xff1a;611 Dhar P, Singh R V, Peng K C, et al. Learning without memorizing[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019: 5138-5146. 本文提…...

数组和指针

数组和指针 数组初始化特殊的字符数组 指针的引入指针的定义和初始化指针操作指针和const限定符 C风格字符串 C提供了两种类似于vector和迭代器的低级复合类型&#xff1a;数组和指针。与vector类似&#xff0c;数组也可以保存某种类型的一组对象&#xff0c;只是数组一经创建就…...

【数电尾灯设计】2022-8-16

缘由数电尾灯设计问题&#xff0c;求解答--CSDN问答 从题目可以列出 000 100 010 111-----------4进制 000 100 010 110 001 101 011 111-----------8进制 由列出可知用16进制芯片的3个引脚可以获得8进制推导出4进制从而可用逻辑处理为4进制实现尾灯功能。之上第一步实现了尾灯…...

F.interpolate函数

F.interpolate 是 PyTorch 中用于对张量&#xff08;通常是图像数据&#xff09;进行插值操作的函数&#xff0c;常用于调整张量的大小&#xff0c;例如改变图像的分辨率。它支持多种插值方法&#xff0c;包括最近邻插值、双线性插值和三次插值等。 语法 torch.nn.functional…...

Tableau数据可视化与仪表盘搭建-基础图表制作

目录 对比分析&#xff1a;比大小 柱状图 条形图 数据钻取 筛选器 热力图 气泡图 变化分析&#xff1a;看趋势 折线图 预测 面积图 关系分布&#xff1a;看位置 散点图 直方图 地图 构成分析&#xff1a;看占比 饼图 树地图 堆积图 对比分析&#xff1a;比大…...

Sentinel-5P遥感数据下载及预处理教程【20250105】

Sentinel-5P是欧空局&#xff08;Europe Space Agency&#xff0c;ESA&#xff09;于2017年10月13日发射的一颗全球大气污染监测卫星。卫星搭载了对流层观测仪&#xff08;Tropospheric Monitoring Instrument&#xff0c;TROPOMI&#xff09;&#xff0c;可以有效的观测全球各…...

快速学习 pytest 基础知识

全篇大概 5000 字&#xff08;含代码&#xff09;&#xff0c;建议阅读时间10min 简介 Pytest是一个非常成熟的测试框架&#xff0c;适用于但愿测试、UI测试、接口测试。 简单灵活、上手快支持参数化具有多个第三方插件可以直接使用 assert 进行断言 一、Pytest安装 pip inst…...

[python]解决AttributeError: module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘问题

环境&#xff1a;python3.13.1 问题&#xff1a; 利用ddddocr进行验证码识别时报AttributeError: module PIL.Image has no attribute ANTIALIAS错误信息&#xff0c;具体如下&#xff1a; python3 Python 3.13.1 (main, Jan 6 2025, 22:29:09) [Clang 16.0.0 (clang-1600.…...

【C++】类和对象(下):友元、static成员、内部类、explicit 和 匿名对象

文章目录 前言一、友元二、static成员三、内部类四、隐式类型转换&#xff08;加explicit可以阻止隐式类型转换&#xff09;五、匿名对象 前言 一、友元&#xff08;友元函数 和 友元类&#xff09; 二、static成员&#xff08;类中被static修饰的成员变量 和 成员函数&#xf…...

Shapelet-aeon-1

本文中&#xff0c;我们将首创一个长度为m、维度为d的时间序列表示为一个向量。 在aeon中&#xff0c;我们将一个序列描述为x:(n_channels, n_timepoints). x是一个二维数组&#xff0c;其中n_channels对应的是维度d&#xff0c;或者说是特征数量&#xff1b;n_timepoints对应…...

2. 进程和线程

文章目录 前言1. 进程是什么2. 进程的相关属性3. 线程是什么4. 为什么引入线程5. 进程和线程的区别 前言 上一篇博客&#xff0c;我们讲到了CPU和操作系统&#xff0c;今天我们讲一个操作系统中一个非常重要的概念—线程和进程 1. 进程是什么 每个应用程序运行于现代操作系统…...

CE中注册的符号地址如何通过编程获取

我的方式是先执行lua申请共享内存&#xff0c;内存名称是进程id&#xff0c;这样多开也不受影响&#xff0c;然后通过共享内存的名字就可以读到地址了。之后的人造指针的地址也都可以放这里集中管理。 -- 申请内存 local size 1024 -- 申请 1024 字节&#xff08;1 KB&#…...

QT上实现SVM进行数据分类

针对不了解SVM的原理的同学强推下面这个课程&#xff1a; 6.机器学习课程&#xff08;六&#xff09;支持向量机&#xff08;线性模型&#xff09;问题_哔哩哔哩_bilibili 一、QT实现SVM的方法 1.调用SVM的C语言库&#xff1a;麻烦&#xff0c;要专门去找库&#xff0c;cmak…...

【unity调用c++动态库,c++和c#相互调用】

文章目录 前言一、编写C++动态库(MyLibrary.cpp)二、 编译C++动态库三、编写C#代码(CallbackExample.cs)四、将C++动态库与Unity项目集成五、Unity运行结果六、注意事项总结前言 在Unity中调用C++动态库并进行回调到C#的功能实现,涉及到C++与C#之间的交互。这个过程的关键…...

SAP FICO财务模块的会计年度变式是什么?有特殊的年度期间(财年)吗?可以不按日历月份来设定会计期间吗?

文章目录 一、会计准则中关于会计期间的一般性原则二、SAP系统中关于会计期间的设定&#xff08;1&#xff09;一般性的期间设定方式&#xff08;2&#xff09;特殊期间是什么&#xff1f;&#xff08;3&#xff09;有些国家与众不同的财年 三、可以不按日历月份来设定会计期间…...

Linux(17)——使用 DNF 安装和更新软件包

目录 一、使用 DNF 管理软件包&#xff1a; 1、 DNF 查找软件&#xff1a; 2、DNF 安装软件&#xff1a; 3、DNF 删除软件&#xff1a; 二、使用 DNF 管理软件包组&#xff1a; 1、DNF 显示组信息&#xff1a; 2、DNF 安装组&#xff1a; 三、使用 DNF 查看事务历史记录…...

vue中的设计模式

vue中使用了哪些设计模式 1. 观察者模式&#xff08;Observer Pattern&#xff09; 应用场景&#xff1a;Vue 的响应式系统核心就是观察者模式。 实现方式&#xff1a;通过 Object.defineProperty 或 Proxy 监听数据变化&#xff0c;当数据发生变化时&#xff0c;通知依赖的视…...

大模型性能随笔

1. 如果开了accumulate gradient更新&#xff0c;则pipeline并行的bubble会变小很多。因为每foward好多个batch&#xff0c;才开始backward。 2. chat聊天任务上&#xff0c;可以把prefix KV cache reuse功能利用起来&#xff1b;然后把同一个session的对话&#xff0c;路由到…...

pdf预览 报:Failed to load module script

pdf 预览报&#xff1a; Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of “application/octet-stream”. Strict MIME type checking is enforced for module scripts per HTML spec. 报错原因&#xff1a…...

基于 gitlab-runner 实现调度GPU的资源

本篇目录 1. 客户需求2. 需求调研3. 实践3.1 方案一&#xff1a;环境变量的方式3.2 方案二&#xff1a;k8s 自身的spec注入机制 4. 效果 该实践来自于客户的一个真实需求 1. 客户需求 客户的某些流水线需要使用GPU资源&#xff0c;但是对于GPU服务器而言&#xff0c;会有多张G…...

【源码+文档+调试讲解】项目申报小程序

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代…...

【ShuQiHere】使用 SCP 进行安全文件传输

【ShuQiHere】&#x1f680; 在日常的开发和运维工作中&#xff0c;文件传输是一个常见的任务。scp&#xff08;Secure Copy&#xff09;是一个基于 SSH 协议的文件传输工具&#xff0c;能够在本地和远程主机之间安全地复制文件和目录。本文将详细介绍 scp 的使用方法&#xf…...

算法基础 - 二分查找

文章目录 二分查找算法通常应用于已排序的数组。以下是一个C实现的二分查找算法示例&#xff1a; #include <iostream> #include <vector>int binarySearch(const std::vector<int>& nums, int target) {int left 0;int right nums.size() - 1;while …...

权限掩码umask

1 、 设置新建文件或目录的默认权限 在 Linux 系统中&#xff0c;当用户创建一个新的文件或目录时&#xff0c;系统都会为新建的文件或目录分配默认的权限&#xff0c;该默认权限与umask 值有关&#xff0c;其具体关系是&#xff1a; 新建文件的默认权限 0666-umask 值 新建…...

5. CSS引入方式

5.1 CSS的三种样式 按照 CSS 样式书写的位置(或者引入的方式)&#xff0c;CSS样式表可以分为三大类&#xff1a; 1.行内样式表&#xff08;行内式&#xff09; 2.内部样式表&#xff08;嵌入式&#xff09; 3. 外部样式表&#xff08;链接式&#xff09; 5.2 内部样式表 …...

在Linux中,SElinux的作用是什么?如何临时和永久的更改SElinux上下文?

SELinux在Linux系统中扮演者至关重要的安全角色&#xff0c;它通过实施强制访问控制&#xff08;Mandatory Access Control,MAC&#xff09;策略来增强系统的安全性。不同于传统的用户和组权限管理机制&#xff08;即自主访问控制DAC&#xff09;&#xff0c;selinux提供了一种…...

windows下,golang+vscode+delve 远程调试

1 现在远程服务器安装golang和delve golang的安装&#xff0c;通过官网直接下载安装包安装接口 go install github.com/go-delve/delve/cmd/dlvlatest 如果dlv和golang版本不匹配&#xff0c;这里把latest换成匹配的版本&#xff0c;比如1.20.0 2 编译带调试信息的程序 go bu…...

社交牛杂症?锂电系统有了DeviceNet转Profinet网关后,沟通无障碍

在锂电行业蓬勃发展的当下&#xff0c;自动化与智能化浪潮正席卷而来&#xff0c;这无疑对设备间的通信精准度与流畅性提出了严苛要求&#xff0c;而稳联技术Devicenet转Profinet网&#xff08;WL-PN-DVNM&#xff09;关恰是破局的关键利器。 此网关设备犹如一座桥梁&#xff0…...