人工智能导论速成笔记

news2024/7/4 22:57:49

文章目录

  • 前言
  • 考试题型
  • 第一章、人工智能导引 (10分 )
    • 课后习题
  • 第二章、Python基础 (10分 )*
    • 文件读写
    • NumPy的使用
    • Python绘图基础
  • 第三章、机器学习初步(15分 )
    • 逻辑回归分类(Logistic Regression)*,3.5
    • 线性回归预测(Linear Regression)*,3.6 、3.7、 3.8
    • 聚类 3.9
  • 第四章、自然语言处理(10分 )
    • 文本分词 与 词汇还原
    • 文本分块* 与词袋模型 4.4、4.5
    • 使用 TF-IDF算法* 构建文档类别预测器 4.6
    • LDA
  • 第五章、语音识别(10分 )
    • 将音频信号从时域转换为频域* 5.2
    • 生成音频信号 5.3
    • 提取语音特征* ( MFCC,梅尔频率倒谱系数) 5.4
  • 第六章、计算机视觉(10分 )
    • 视频中移动物体检测方法
      • 帧间差分法* 6.1
      • 色彩空间跟踪对象 6.2
      • 背景差分法 6.3
    • 使用 CAMShift算法* 构建目标跟踪器 6.4
  • 第七章、人工神经网络(20分 )
    • 构建单层感知器*
    • 单层与多层人工神经网络* 7.2 7.3
      • 单层人工神经网络 7.2
      • 多层人工神经网络 7.3
    • 循环人工神经网络(Rerrent Neural Network, RNN) 7.4
  • 第八章、强化学习和深度学习(15分 )
    • 什么是深度学习
    • 卷积神经网络
      • 卷积运算*
    • 使用单层神经网络建立图像分类器
    • 使用卷积神经网络建立图像分类器
  • 附录(常见英文)

前言


在这里插入图片描述

        该篇序主要用于期末复习备考,便于初学者快速入门《人工智能导论》,可做参考。



考试题型


ß1选择题20分,每题1分,共20小题
ß2填空题20分,每题1分,共20小题
ß3简答题20分,每题4分,共5小题
ß4程序阅读理解题40分,每题8分,共5题
ß建议复习:
ß第3章,程序3.5-3.9
ß第4章,程序4.4-4.6
ß第5章,程序5.2-5.4
ß第6章,程序6.1-6.4
ß第7章,程序7.2-7.4




第一章、人工智能导引 (10分 )


学习任务:人工智能的概念,以及人工智能与大数据、机器学习、深度学习的联系等。

  1. 人工智能的概念

        人工智能(Artificial Intelligence) ,它研究、开发用于模拟、延伸和扩展人的智能,是计算机科学的一个研究分支。
        人工智能的研究是从以“推理”为重点到以“知识”为重点,再到以“学习”为重点

  1. 人工智能与大数据

大数据不断驱动人工智能的发展。大数据应用的人工智能技术:

  1. 外推
  2. 异常检测
  3. 贝叶斯原理
  1. 人工智能与机器学习

        机器学习是实现人工智能的一个途径,即以机器学习为手段,解决人工智能中的问题。
        机器学习就是设计一个算法模型来处理数据,我们可以针对算法模型进行不断的调优,形成更准确的数据处理能力。机器学习与统计学联系尤为密切,也被称为统计学习理论。
        机器学习的应用:数据挖掘、数据分类、计算机视觉、自然语言处理(NLP)、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别

        

  1. 人工智能与深度学习

        深度学习是机器学习中一种基于对数据进行表征学习的方法。它是机器学习中的神经网络算法的延伸,可以理解为包含很多个隐层的神经网络模型,是机器学习中最热门的算法

在这里插入图片描述


课后习题


  1. 人工智能是什么?

        人工智能是一门基于计算机科学、生物学、心理学、神经科学、数学和哲学等学科的科学

  1. 人工智能怎么来的?

        人工智能是基于图灵测试,随着第一个可编程机器人的发明、人工智能诞生

  1. 大数据与人工智能的关系

        人工智能可以用传统上人类无法处理的方式处理大数据集。随着数字经济的不断扩大,大数据不断地驱动人工智能的发展,主要表现为建立驱动数据和知识引导的智能计算平台和方法,形成从数据到知识、从知识到智慧这样一个逐步上升的过程

  1. 大数据应用的人工智能技术

        外推、异常检测、叶贝斯原理

  1. 人工智能与机器学习

         机器学习是人工智能的一个分支研究领域,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。
        机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题

  1. 人工智能与深度学习

        深度学习是机器学习中的一种基于对数据进行表征学习的方法。他使得机器学习能够实现众多应用,并拓展了人工智能的领域范围,是实现机器学习的技术。他是机器学习中神经网络算法的延伸,可以理解为包含多个隐层的神经网络模型;也是机器学习中最热门的算法,在图像、语音等富媒体的废了计划识别上取得了非常好的效果。
        深度学习也很好的实现了各种任务,使得似乎所有机器辅助功能都变为可能。

  1. 什么是人工智能!]?试从学科和能力两方面加以说明。

        从学科角度来看:人工智能是计算机科学中涉及研究、设计和应用智能机器的一个分支。它的近期主要目标在于研究用机器来模仿和执行人脑的某些智能功能,并开发相关理论和技术。
从能力角度来看:人工智能是智能机器所执行的通常与人类智能有关的功能,如判断、 推理、 证明、识别、感知、理解、设计、思考、规划、学习和问题求解等思维活动

  1. 在人工智能的发展过程中,有哪些思想和思潮起了重要作用? *

        控制论之父维纳 1940年主张计算机五原则。他开始考虑计算机如何能像大脑一样工作。系 统地创建了控制论,根据这-理论,一个机械系统完全能进行运算和记忆。
帕梅拉·麦考达克(Pamela McCorduck)在她的著名的人工智能历史研究《机器思维》(Machine Who Think,1979)中曾经指出:在复杂的机械装置与智能之间存在着长期的联系。著名的英国科学家图灵被称为人工智能之父,图灵不仅创造了一个简单的通用的非数字计算模型,而且直接证明了计算机可能以某种被理解为智能的方法工作。提出了著名的图灵测试。数理逻辑从19 世纪末起就获迅速发展;到 20 世纪 30 年代开始用于描述智能行为。计机 出现后,又在计算机上实现了逻辑演绎系统。
        1943年由生理学家麦卡洛克(McCuloch)和数理逻辑学家皮茨(Pitts)创立的脑模型,即MP模 型。60-70年代,联结主义,尤其是对以感知机(perceptron)为代表的脑模型的研究曾出现过热潮,
        控制论思想早在 40-50 年代就成为时代思潮的重要部分,影响了早期的人工智能工作者。到60-70 年代,控制论系统的研究取得一定进展,播下智能控制和智能机器人的种子。

  1. 人工智能有哪些研究领域和应用领域? *

(1) 研究领域:自然语言处理,知识表现,智能搜索,推理,规划,机器学习,知识获取,组合调度问题,感知问题,模式识别,逻辑程序设计,软计算,不精确和不确定的管理,人工生命,神经网络,复杂系统,遗传算法
(2) 应用领域:智能控制,机器人学,语言和图像理解,遗传编程,头像识别,语语音识别



第二章、Python基础 (10分 )*


学习任务文件读写NumPy的使用Python绘图基础

        

文件读写


  1. 获取文件路径:
    绝对路径:从根目录开始
            
    绝对路径示例
            

        相对路径:相当于程序的当前工作目录
        

在这里插入图片描述

        

  1. 读文件
    先调用open()函数打开文件,再调用read()读取文件,最后调用close()关闭文件。

代码示例:

f = open ('exam.txt','r',encoding='utf-8')
print(f.read())
f .close()

        
文件读取时报错的解决方式:
        1. 使用try…except… finally错误处理机制;

try:
	f = open('test.txt','r')
	print(f.read)
finally:
	f.close()

        2. 通过with语句自动调用close()方法。

with open('test.txt','r') as f:
	print(f.read))

        

文件读取方式:

文件读取方式


  1. 写文件

代码示例:

f = open ('exam.txt','w',encoding='utf-8')
f.write ('Hello Python')
f .close()
with open('test.txt','w') as f:
	f.write('Hello Python')


NumPy的使用


安装命令: pip install NumPy

        

数据类型:
在这里插入图片描述

创建数组函数:

         numpy.empty() 方法可以创建一个指定形状、数据类型且未初始化的数组。使用numpy.empty()方法创建的数组通常数组内元素为空,没有实际意义,所以也是创建数组方法中 最快 的一种。
         numpy.zeros() 方法可以创建指定大小的数组,数组元素以0填充。
         numpy.ones() 方法可以创建指定形状的数组,数组元素以1填充。
         numpy.asarray() 方法可以将结构数据转换为多维数组(ndarray),并且不会占用新的内存。
         numpy.fromBuffer() 方法可以用于实现动态数组,接收buffer 输入参数,以流的形式读入并转换为 ndarray对象。
         numpy.fromiter() 方法可以从可迭代对象中建立 ndarray 对象,返回一维数组。
         numpy.arange(start, stop, step),在给定的范围[start,stop)内,返回间隔(step)均匀的值。
         numpy.linespace(start, stop, num=50),在给定间隔内,返回num(默认50)个)均匀分布的数字。
         numpy.logspace() 方法可以用于创建一个等比数列。

import numpy as np
x = np.arange(10,50,8)
y = np.logspace(0,4,5,base = 2) # linspace() 方法
print(y)
print  (x)
-----
[10 18 26 34 42]
[1.  2.  4.  8.  16.]

        

数组索引:

  1. 使用 slice() 函数切割函数
  2. 通过冒号分隔切片参数 start : stop : step进行切片

代码示例:

import numpy as np
a = np.arange(10)     #  0 1 2 3 4 5 6 7 8 9,arange 从 0开始 生成10个整数
x1 = slice (1,9,3)    #从索引1开始到索引8停止 间隔为3
x2 = a [2:8:2]        #从索引2开始到索引7停止 间隔为 2
print (a[x1],'\n',x2)
结果:
[1 4 7] 
[2 4 6]

高级索引

import numpy as np
import numpy as np
x = np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]])
rows = np.array([[0,3],[3,2]])
cols = np.array([[0,1],[0,2]])
y = x [rows,cols]
print (y)
print ('大于5的元素是:')    #打印出大于5的元素,布尔索引
print (x[x>5])



----

结果:
[[ 0 10]
[ 9 8]]
大于5的元素是:
[ 6  7  8  9 10 11]

解释:
        y 中的值应该结合 rows 和 cols 一起看,
        第一个数组的第一个数 为 rows 的第一个数 0 ,和 cols的第一个数 0,则 y 第一个数组的第一个数为 x的 第 0 行 第 0 列 的数字 ,即 0;
        第一个数组的第二个数 为 rows 的第二个数 3 ,和 cols的第二个数 1,则 y 第一个数组的第二个数为 x的 第 3行 第 1 列 的数字 , 即 10;

        

在这里插入图片描述


数组操作

  1. 修改数组的形状
    numpy.reshape()函数 可以在不改变数据的条件下修改数组形状。
    numpy.ndarray.flatten(C/F/A)函数 返回一份数组副本,对副本所做的修改不会影响原始数组。其中,C表示按照 行填充;F 表示 按照列填充;A 表示按照原顺序填充;默认为 C 。
  1. 翻转数组
    numpy.transpose()函数 用于对换数组的维度。
    numpy.rollaxis()函数 向后滚动特定的轴到一个特定位置。
    numpy.swapaxes()函数 用于交换数组的两个轴。

  2. 修改数组维度
    numpy.broadcast_to()函数将数组广播到新形状,在原始数组上返回只读视图。它通常不连续,如果新形状不符合 NumPy 的广播规则,该函数可能会抛出ValueError。

  3. 连接数组

  4. 分割数组

  5. 数组元素的添加与删除


Python绘图基础


初级绘图

  1. 引入第三方库:在Python中使用任何第三方库时,都必须先将其引入。

import matplotlib.pyplot as plt 或者: from matplotlib.pyplot import *

  1. 建立空白页

fig = plt.figure()
指定空白页大小
fig = plt.figure (figsize= (4,2))

  1. 基础绘图

import matplotlib.pyplot as plt
plt.plot ([1,3,2,4],[1,2,3,4]) # 折线图
plt.show()

  • plt.plot----折线图
  • plt.bar----条形图,柱状图(有间隔,数据为离散型)
  • plt.hist----直方图(无间隔,数据为连续型)


线条

  1. 线条属性
    线条属性

  2. 线条标记
    线条标记

  3. 线条颜色
    可以通过调用matplotlib.pyplot.colors()得到Matplotlib支持的8种颜色,如果这8种基础颜色不够用,还可以通过两种其他方式定义颜色值:
    (1) 使用HTML十六进制字符串: color=‘eeefff’
    (2) 传入一个归一化到[ 0, 1]的RGB元组: color=(0.9,0.,0.8)

通过设置plt.plot()函数的参数color(或等效的简写为c),可以设置曲线的颜色。

import numpy as np
import matplotlib.pyplot as plt
def pdf(x,mu,sigma):
a=1./(sigma*np.sqrt(2.*np.pi))
b=-1./(2.*sigma**2)
return a*np.exp(b*(x-mu)**2)
x=np.linspace(-6,6,1000)
plt.plot(x,pdf(x,0.,1.),color='#00ff00')
plt.plot(x,pdf(x,0.4,1.),color=(0.9,0.,0.8))
plt.show()
  1. 线条粗细
    线条粗细使用linewidth设置,对应线条上的marker大小设置为ms参数。
    如果想要marker为空心,可以在后面加上markerfacecolor=‘none’。
plt.plot (y,'bx--',y+1,'yo',linewidth=4.0)
plt.plot (y+2,'kp-',y+3,'rD-',ms=8)
plt.plot (y+2,'kp-',y+3,'rD-',ms=8,markerfacecolor='none')



第三章、机器学习初步(15分 )


逻辑回归分类(sigmoid函数、损失函数)
线性回归预测(拟合数据)

聚类

机器学习工作流程:
在这里插入图片描述

  • 抽象实际问题: 深入理解实际问题的业务场景是机器学习的开始。理解实际问题,主要包括明确可以获得的数据,明确机器学习的目标是分类、回归还是聚类。
  • 获取数据:在获取数据时,得到的数据要有代表性
  • 数据预处理:实际的场景中,得到的数据常常并不满足机器学习算法的要求。比如,性别数据的缺失、年龄数据的异常(输入造成的负数或者超大的数)。因此通常都需要对数据进行基本处理,包括数据清洗、数据归一化、扩充等。
  • 特征工程:特征工程包括从原始数据中进行特征构建、特征提取和特征选择。
  • 训练模型和调优:根据数据的实际情况和具体要解决的问题来选择模型。

数据:样本数、特征维度、数据特征;
模型调优:交差验证、观察损失曲线、测试结果曲线等方法来分析,可以整合多个模型,提高学习效果。

  • 模型评估:根据分类、回归等不同的问题,选择不同的评价指标,评估模型的准确率、误差、时间复杂度、空间复杂度、稳定性、可迁移性等。


机器学习分类:

  1. 有监督学习(supervised learning):给定数据,有标签,有反馈,预测未来结果(标签)。

  2. 无监督学习(Unsupervised learning):给定数据,无标签,无反馈,寻找隐藏的结构(自动聚类)

特点:

  • ⑴ 无监督学习没有明确的目的
  • ⑵ 无监督学习不需要给数据打标签
  • ⑶ 无监督学习无法量化效果

应用:

  • ⑴ 用户细分
  • ⑵ 推荐系统
  1. 强化学习(Reinforcement Learning):主要由智能体(Agent)、环境(Environment)、状态(State)、动作(Action)、奖励(Reward)组成。

        例如:学英语。有监督学习是先读几篇中英文对照的文章,从而学会阅读和理解纯英语的文章。无监督学习是直接阅读大量纯英文文章,当数量达到一定程度,虽然不能完全理解文章,但也会发现一些词组的固定搭配,句式等等。

不同:
        a) 监督学习 是最常见的一种机器学习,它的训练数据是有标签的,训练目标是能够给新数据(测试数据)以正确的标签。例如,将邮件进行是否垃圾邮件的分类,一开始我们先将一些邮件及其标签(垃圾邮件或非垃圾邮件)一起进行训练,学习模型不断捕捉这些邮件与标签间的联系进行自我调整和完善,然后给一些不带标签的新邮件,让该模型对新邮件进行是否是垃圾邮件的分类。

        b) 无监督学习 常常被用于数据挖掘,用于在大量无标签数据中发现些什么。它的训练数据是无标签的,训练目标是能对观察值进行分类或者区分等。例如无监督学习应该能在不给任何额外提示的情况下,仅依据所有“猫”的图片特征,将“猫”的图片从大量的各种各样的图片中将区分出来。

        c) 强化学习 通常被用在机器人技术上(例如机械狗),它接收机器人当前状态,算法的目标是训练机器来做出各种特定行为。工作流程:机器被放置在一个特定环境中,在这个环境里机器可以持续性地进行自我训练,而环境会给出正或负的反馈。机器会从以往的行动经验中不断得到提升,并最终找到最好的知识内容来帮助它做出最有效的行为决策。



数据预处理:

  1. 数据清洗:将数据集的“脏”数据去除(如网页上爬取的内容不完整的数据记录)
  2. 数据变换:对数据的规范化、离散化或稀疏化处理。规范化是对数据进行归一化和 标准化;离散化是将取值的连续区间划分为小的区间,再将每个小区间重新定义为一个唯一的取值;稀疏化是进行数据抽样,如对图模型中的结点和边分别进行数据抽样(疏化处理),然后对疏化处理的结果进行图聚类分析。
  3. 数据过滤:对数据集处理前,对数据某些属性(字段)进行过滤。


逻辑回归分类(Logistic Regression)*,3.5


        逻辑回归主要解决的是二分类的问题,即分类的结果只有两个类别。属于判别式的线性分类模型——就是直接根据数据进行参数估计的模型。
        逻辑回归的应用场景如:基于邮件的特征,去判断一封邮件是否是垃圾邮件;基于用户行为,判断用户的性别等。

Sigmoid 函数 通过与0.5的比对得出数据所属的分类,大于0.5的概率则判别为1,小于0.5的概率则判别为0。
函数形式为: s i g m o i d ( z ) = 1 1 + e − x sigmoid (z) = \frac{1}{1+e^{-x}} sigmoid(z)=1+ex1


在这里插入图片描述


示例代码:

from sklearn. datasets import load_iris
import pandas as pd
from sklearn. linear_model import LogisticRegression
# 导入所需的库和模块
from sklearn.datasets import load_iris  # 加载鸢尾花数据集
import pandas as pd  # 数据处理和分析库
from sklearn.linear_model import LogisticRegression  # 逻辑回归模型
import numpy as np  # 数值计算库
import matplotlib.pyplot as plt  # 绘图库
from sklearn.model_selection import train_test_split  # 用于划分训练集和测试集的函数


# 加载鸢尾花数据集

iris = load_iris()

# 提取数据集中的特征和目标变量

x = iris.data
y = iris.target

# 划分训练集和测试集,测试集占比为20%

x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0, test_size=0.20)

# 创建逻辑回归模型,使用牛顿共轭梯度法求解,多类分类模式为多项式分布

clf = LogisticRegression(C=1, solver='newton-cg', multi_class='multinomial')

# 在训练集上拟合模型

clf.fit(x_train, y_train)

# 输出实际值和预测值

print("实际值:", y_test)
print("预测值:", clf.predict(x_test))

# 输出训练集和测试集上的准确率得分

print(clf.score(x_train, y_train))
print(clf.score(x_test, y_test))

# 预测新数据点的分类结果

print(clf.predict([[3.1, 2.3, 1.2, 0.5]]))



-------

实际值: [2 1 0 2 0 2 0 1 1 1 2 1 1 1 1 0 1 1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1880311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

郑州高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

随着制造业的转型升级,智能化、信息化已成为制造业发展的必然趋势。数字孪生技术作为智能制造领域的关键技术之一,它通过构建与实体系统相对应的虚拟模型,实现对实体系统的实时监测、预测和优化,为制造业的智能化、信息化提供了强…

叶老师的新水杯c++

题目描述 最近叶老师换了个带吸管的水杯。 贝贝发现当叶老师使用带吸管的水杯时,每天会喝 x 毫升的水。而使用不带吸管的水杯时,每天会喝 y 毫升的水。 请问在 n 天的时间内,叶老师喝水量的上限与下限相差多少? 输入 第一行为…

Advanced RAG 09:『提示词压缩』技术综述

编者按: 如何最大限度地发挥 LLMs 的强大能力,同时还能控制其推理成本?这是当前业界研究的一个热点课题。 针对这一问题,本期精心选取了一篇关于"提示词压缩"(Prompt Compression)技术的综述文章。正如作者所说&#xf…

VMware17.0 安装过程

VMware17.0 VMware 17.0 是一款功能强大的虚拟机软件,用于在计算机上创建和管理虚拟机。它能够同时运行多个操作系统,如 Windows、Linux 等,并且在这些虚拟机之间提供无缝的切换和共享功能。 VMware 17.0 支持最新的硬件和操作系统&#xf…

区间动态规划——最长回文子串(C++)

难得心静。 ——2024年6月30日 什么是区间动态规划? 区间动态规划通常以连续区间的求解作为子问题,例如区间 [i, j] 上的最优解用dp[i][j]表示。先在小区间上进行动态规划得到子问题的最优解,再利用小区间的最优解合并产生大区间的最优解。 …

ComfyUI高清放大的四种方式(工作流附件在最后)

方式一:Latent放大工作流 1.工作流截图 方式二:ESRGAN(传统模型)放大工作流 方式三:算法放大(后期处理)工作流 方式四:Ultimate SD Upscale工作流 这个方式的优势是对于显存底的用…

WP黑格导航主题BlackCandy

BlackCandy-V2.0全新升级!首推专题区(推荐分类)更多自定义颜色!选择自己喜欢的色系,焕然一新的UI设计,更加扁平和现代化! WP黑格导航主题BlackCandy

代码随想录第37天|动态规划

01背包理论基础 参考 01背包: 每个物品只有一个, 只要选或不选两个选项 暴力解法: 回溯法枚举 dp[i][j]: i 表示 0 ~ i 的物品, j 表示容量, 数值表示当前的最大价值递推公式: max(dp[i-1][j], dp[i-1][j-weight[i]] value[i])初始化: j 0 时, 无法放任何有价值的物品, d…

目标检测常用涨点方法:注意力机制小结(空间注意力、通道注意力、CBAM等)

1.通道注意力 通道注意力(Channel Attention)是在通道维度上对输入数据进行学习,再对不同的通道分配相应的权重表示重要性,从而达到“分配注意力”的效果。SENet(Squeeze and Excitation networks) 是一个典型的使用通…

MySQL高级-事务-并发事务演示及隔离级别

文章目录 0、四种隔离级别1、创建表 account2、修改当前会话隔离级别为 read uncommitted2.1、会出现脏读 3、修改当前会话隔离级别为 read committed3.1、可以解决脏读3.2、会出现不可重复读 4、修改当前会话隔离级别为 repeatable read(默认)4.1、解决…

C++(Python)肥皂泡沫普拉托边界膜曲面模型算法

🎯要点 🎯肥皂泡二维流体模拟 | 🎯泡沫普拉托边界膜曲面模型算法演化厚度变化 | 🎯螺旋曲面三周期最小结构生成 📜皂膜用例:Python计算物理粒子及拉格朗日和哈密顿动力学 | Python和MATLAB粘性力接触力动…

ELK企业级实战

一、Elstic stack在企业的常⻅架构 https://www.bilibili.com/video/BV1x94y1674x/?buvidXY705117E90F73A790429C9CFBD5F70F22168&vd_source939ea718db29535a3847d861e5fe37ef ELK 解决取得问题 痛点1: ⽣产出现故障后,运维需要不停的查看各种不同的⽇志进⾏…

10款好用不火的PC软件,真的超好用!

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/市场上有很多软件,除了那些常见的大众化软件,还有很多不为人知的小众软件,它们的作用非常强大,简洁…

骁龙相机拍照流程分析

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 1.deliverInputEvent 拍照点击事件处理 2.submitRequestList Camera 提交拍照请求 3.createCaptureRequest 拍照请求帧数 骁龙相机通过binder 数据传输…

小程序打包

一、manifest.json文件添加小程序id 二、接口校验,后端接口添加正式上线,有域名的地址 然后到微信公众平台-开发管理-服务器域名处配置request合法域名,在 此处能够看到后端的baseUrl 三、项目部署 四、发版 在小程序编辑器里 此处可以在…

微服务之服务保护策略【持续更新】

文章目录 线程隔离一、滑动窗口算法二、漏桶算法三、令牌桶算法 面试题1、Sentinel 限流和Gateway限流的区别 线程隔离 两种实现方式 线程池隔离(Hystix隔离),每个被隔离的业务都要创建一个独立的线程池,线程过多会带来额外的CPU…

Android跨进程通信,binder传输数据过大导致客户端APP,Crash,异常捕获,监听异常的数值临界值,提前Hook拦截。

文章目录 Android跨进程通信,binder传输数据过大导致Crash,异常捕获,监听异常的数值临界值,提前Hook拦截。1.binder在做跨进程传输时,最大可以携带多少数据1.1有时候这个1m的崩溃系统捕获不到异常, 2.监测异…

大模型系列课程学习-基于2080TI-22G魔改卡搭建双卡大模型训练平台(双系统)

1.选择合适的硬件配置 再配置电脑之前,需要确认自己需要的显存大小、主板、内存条、电源、散热等核心配件。经过前期调研,选择的硬件配置如下: (1)主板:华南X99_F8D(DDR4主板),因为需要支持双卡…

springboot 3.x相比之前版本有什么区别

Spring Boot 3.x相比之前的版本(尤其是Spring Boot 2.x),主要存在以下几个显著的区别和新特性: Java版本要求: Spring Boot 3.x要求至少使用Java 17作为最低版本,同时已经通过了Java 19的测试,…

【C语言】指针剖析(完结)

©作者:末央& ©系列:C语言初阶(适合小白入门) ©说明:以凡人之笔墨,书写未来之大梦 目录 回调函数概念回调函数的使用 - qsort函数 sizeof/strlen深度理解概念手脑并用1.sizeof-数组/指针专题2.strlen-数组/指针专题 指针面试题专题 回调函…