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

BP神经网络应用案例

目录

背景介绍

【神经网络符号说明】

 【建立网络拓扑结构】

【神经网络学习步骤】

步骤1 准备输入和输出样本

步骤2  确定网络学习参数

 步骤3  初始化网络权值W和阀值B

 步骤4  计算网络第一层的输入和输出

步骤5 计算中间层(隐含层输入和输出)

步骤6 计算输出层的输入和输出​编辑

步骤7 计算能量函数

步骤8 计算能量函数对各参数的偏导数(梯度)

步骤9 计算各权值的调整量

步骤10  调整各个权值

步骤11 网络输出的还原

 神经网络训练(建模过程的有关细节略去)

输入变量

输出变量

【基于案例的网络训练效果与参数的关系】

1、其余要素不变,训练次数与误差的关系

 2、隐含层神经元数量与误差关系

3、学习效率与误差关系

 4、利用训练好的网络进行预测

 5、避免过度拟合,需要对样本输出做干扰处理


背景介绍

冶金技术,钢铁开始锻炼的“开始温度”与13个指标有关,见表(1)。

出钢时间/h

钢水净重量/t

吹止温度/oC

高碳锰铁/t

低碳锰铁/t

硅锰铁/t

硅铁/t

铝块/t

增碳剂/t

中碳锰铁/t

包龄//

运输时间/min

等待时间/min

开始温度

3

279000

1673

0

5211

0

0

667

0

0

14

45.78

3.03

1557

6

274000

1669

0

5116

0

0

501

0

0

56

9.23

9.37

1561

6

280000

1675

0

5050

0

0

497

0

0

77

22.42

8.83

1583

9

267000

1650

0

5032

0

0

0

0

0

62

24.03

7.17

1553

6

280000

1657

0

4655

0

0

498

0

0

19

28.52

12.3

1574

7

303000

1659

0

1124

0

0

413

180

0

12

45.6

8.13

1568

7

283000

1655

0

1112

0

0

447

176

0

84

46.18

8

1576

7

280000

1649

0

1110

0

0

459

281

0

75

25.07

8.63

1575

5

278000

1641

9876

0

0

2996

2604

472

0

13

30.55

10.27

1594

6

285000

1659

2531

0

0

696

466

73

0

58

19.67

7.87

1570

9

279737

1652

2326

0

0

702

413

64

0

11

33.93

7.07

1550

9

279195

1658

2295

0

0

641

403

94

0

33

40.3

6.97

1566

5

274000

1666

2208

0

0

747

404

103

0

8

25.45

11.8

1578

6

280201

1671

2015

0

0

356

450

0

806

48

28.7

2.83

1591

6

275000

1689

2011

0

0

512

566

0

1597

72

31.63

10.73

1585

5

273000

1647

2003

0

0

603

415

0

0

26

21.4

8.78

1574

8

295000

1633

1806

0

2032

307

305

0

800

16

27.02

10.92

1563

6

276000

1646

1501

0

0

247

446

0

445

86

35.88

11.9

1532

7

292000

1668

1295

0

3786

82

300

50

0

98

24.95

10.43

1563

5

290000

1670

996

0

3507

0

449

0

151

5

45.55

9.72

1572

6

293000

1687

203

0

0

700

296

154

0

59

37.68

8.53

1592

6

288000

1659

0

0

2282

302

449

0

1005

15

25.5

11.45

1575

3

290762

1671

0

0

2046

105

484

0

2715

39

45.3

2.83

1571

6

280875

1658

0

0

2195

0

399

0

2452

7

23.27

7.03

1597

8

284000

1625

0

0

2049

0

467

0

2714

59

34.65

8.2

1595

7

284000

1661

0

0

2018

0

463

0

2649

56

19.13

11.17

1569

6

280000

1669

0

0

2010

0

397

0

2582

13

16.2

9.13

1598

8

257000

1662

0

0

2008

0

422

0

2492

55

10.8

9.03

1606

7

274660

1675

0

0

1503

0

523

0

3326

55

11.22

10.87

1593

6

266000

1673

0

0

1362

0

621

0

3299

61

11.33

9.33

1598

                                                表1 钢铁锻炼的有关指标 

 由冶金机理可知,钢铁开始锻炼的“开始温度”(表中最后1列)会受到出钢时间、钢水净重、吹止温度、高碳锰铁、…、等待时间等13个因素(表1中前13列)影响。这里,将前13列作为输入因子,最后一列作为输出因子,用于学习如何训练BP神经网络及其步骤。

【神经网络符号说明】

  • 系统X输入样本;Y系统输出样本;
  • I1 输入层输入数据;O1为输入层输出数据;
  • I2 隐含层输入数据;O2为隐含层输出数据;
  • I3 输出层输入数据;O3输出层输出数据;
  • 输入层和输出层采用线性函数f(x)=x;
  • 隐含层采用S型刺激函数(第1个,0到1);
  • W1为输入层到隐含层权值,B1为输入层到隐含层阀值;
  • W2为隐含层到输出层权值,B2为隐含层到输出层阀值;
  • E=Ones 为元素为1的行矩阵,维数与Y一致;

 【建立网络拓扑结构】

 针对本案例,需要说明:(1)输入层输入I1=X13×30;(2)由输入层到隐含层参数(W1)12×13,(B1)12×1;(3)中间层到输出层(W2)1×12,(B2)1×1;(4)为了满足矩阵相加,(E)1×30. 

【神经网络学习步骤】

步骤1 准备输入和输出样本

设X为13行30列的输入样本矩阵,Y为1行30列的输出样本。由于输入和输出矩阵的数据量纲不同,计量单位也不同,需要归一化,有两种方式

 

or

步骤2  确定网络学习参数

最大训练次数   5000
隐含层神经元数量(或隐含层数量,各层神经元数量)
               1层,12个神经元
网络学习效率(速度)   0.035
训练目标误差     0.65×10-3.
是否添加动量因子    否

 步骤3  初始化网络权值W和阀值B

W1和B1,W2和B2都采用随机数生成。另外特别说明:

  1. 训练步骤是按照批量形式进行(即样本一次全部输入,采用矩阵运算)
  2. 阀值写成权值形式,也就是说阀值看成样本输入为1的随机数
  3. 数据输入是按照行作为一个输入维度(不是列),即每个样本为一个输入维度,即X的形式要把握

 步骤4  计算网络第一层的输入和输出

由于样本输入就是第一层输入,第一层输入又是线性函数,所以有

步骤5 计算中间层(隐含层输入和输出)

步骤6 计算输出层的输入和输出

步骤7 计算能量函数

为残差向量,能量函数定义为

步骤8 计算能量函数对各参数的偏导数(梯度)

(1)把能量函数写成所有权系数的逐步复合函数,求能量函数关于这些权系数的偏导数(表达成梯度向量)

(2)计算能量函数对权的偏导数 根据复合函数求导链式法则,有

 注意:点乘·表示两个矩阵对应分量相乘得到同型矩阵。

步骤9 计算各权值的调整量

由于负梯度方向是能量函数下降最快的方向,故各个权系数的调整量为

其中,\eta表示学习效率(速度,也就是搜索步长)。

步骤10  调整各个权值

权值=权值+调整量,先调整输出层到隐含层的权值,再调整隐含层到输入层的权值。这个调整方向和计算网络输出的方向刚好相反,故称为前向反馈网络。 

 由于负梯度方向搜索法容易限于局部极值,故很多问题里,调整量还附加了动量因子。

步骤11 网络输出的还原

根据步骤1数据归一化的逆函数,将网络输出还原为样本输出等同意义的数据,用于决策。

{(0,1)还原}

{(-1,1)还原}

在神经网络学习术语里,称样本输出Y为导师数据,或监督数据,称有参考数据的网络学习为有监督学习或有导师学习。而在没有给出监督数据的问题里,要根据问题,构造一个理想的(不存在的)的监督数据,以确定能量函数。现代机器学习人工智能深度学习的一个困惑或难点就是确定合理的导师数据。从上面11步骤可以看到,神经网络训练其实就是利用最小二乘法求解合适的权系数(用的是逆向反馈法)。

 神经网络训练(建模过程的有关细节略去)

 案例数据存放地点:

A=xlsread('d:\ganglengque.xlsx');
X=A(:,1:end-1)';Y=A(:,end)';

编写一个负梯度训练子程序

function [W1,W2,B1,B2,eb,s2]=BPnn(X,Y,n1,n,lr,sig)
[X]=mapminmax(X);
[Y,s2]=mapminmax(Y);
W1=rand(n1,13);B1=rand(n1,1);
W2=rand(1,n1);B2=rand(1,1);
E=ones(size(Y));
eb=[];
for i=1:nI1=X;O1=I1;I2=W1*O1+B1*E;O2=logsig(I2);I3=W2*O2+B2*E;O3=I3;err=Y-O3;hrr=sum(err.^2)^0.5;eb=[eb,hrr];if hrr<sigXt=datetime;disp(Xt);break;enddW2=err*O2';dB2=err*E';dW1=((W2'*err).*(O2.*(1-O2)))*X';dB1=((W2'*err).*(O2.*(1-O2)))*E';W1=W1+lr*dW1;B1=B1+lr*dB1;W2=W2+lr*dW2;B2=B2+lr*dB2;
end
plot(1:length(Y),Y,'--',1:length(Y),O3,'*-');
legend(‘样本输出’,’网络输出');

输入变量

 样本输入X;样本输出Y;隐含层神经元n1;训练次数n;学习效率lr;误差容许sig;

输出变量

 按要求训练得到的权系数W1,W2,B1,B2;各次训练残差痕迹向量eb;输出样本归一化信息s2.

【基于案例的网络训练效果与参数的关系】

1、其余要素不变,训练次数与误差的关系

将训练后的网络输出与样本输出(都归一化)绘制散点图,可以看出拟合好坏(即误差直观体现)

A=xlsread('d:\ganglengque.xlsx');
X=A(:,1:end-1)';Y=A(:,end)';
n1=12;lr=0.035;sig=0.003;
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,n1,20,lr,sig);
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,n1,60,lr,sig);
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,n1,180,lr,sig);
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,n1,500,lr,sig);
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,n1,1000,lr,sig);
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,n1,2000,lr,sig);

 2、隐含层神经元数量与误差关系

其它要素不变,都训练500次,隐含层神经元n1分别取4,6,8,10,12,16,观察拟合效果曲线

A=xlsread('d:\ganglengque.xlsx');
X=A(:,1:end-1)';Y=A(:,end)';
n=1000,lr=0.035;sig=0.003;
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,4,n,lr,sig);
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,6,n,lr,sig);
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,8,n,lr,sig);
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,10,n,lr,sig);
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,12,n,lr,sig);
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,16,n,lr,sig);

3、学习效率与误差关系

它输入因素不变,训练次数n=500,隐含层神经元n1=12,让学习效率lr分别取0.1,0.05,0.02,0.01,0.005,0.001,观察拟合曲线的效果

 4、利用训练好的网络进行预测

对n1=12,n=4000,lr=0.035,案例1提供的训练样本,输出训练好的权系数。如图所示,训练效果很好。

A=xlsread('d:\ganglengque.xlsx');
X=A(:,1:end-1)';Y=A(:,end)';
n=4000;n1=12;sig=0.003;lr=0.035;
[W1,W2,B1,B2,eb,s2]=BPnn(X,Y,n1,n,lr,sig);

训练完成的权系数W1,W2,B1,B2保存在表2中,用不同颜色区分。

W1= 

1

2

3

4

5

6

7

8

9

10

11

12

13

B1=

1

0.05 

-0.84 

0.97 

0.96 

0.18 

0.20 

0.85 

0.00 

0.80 

1.30 

-0.37 

0.23 

0.76 

0.28 

2

-0.65 

1.74 

0.41 

-0.37 

-0.41 

0.60 

0.65 

0.38 

0.48 

1.63 

1.55 

1.83 

0.35 

0.46 

3

0.57 

0.86 

0.79 

0.45 

1.55 

0.17 

0.67 

0.78 

0.24 

0.27 

0.90 

1.07 

0.66 

-0.17 

4

0.30 

0.00 

0.32 

1.05 

0.22 

0.25 

0.74 

0.75 

0.77 

0.63 

0.52 

0.24 

-0.09 

0.45 

5

0.23 

0.08 

0.76 

0.85 

-0.69 

1.48 

0.26 

0.55 

0.48 

1.80 

-0.03 

0.00 

-0.67 

0.40 

6

1.79 

-0.87 

-1.57 

0.92 

0.50 

2.29 

0.36 

0.33 

0.79 

0.94 

0.02 

0.93 

-0.35 

0.07 

7

0.30 

0.35 

0.71 

1.04 

0.45 

0.11 

0.80 

0.89 

0.89 

0.60 

0.26 

0.40 

0.59 

0.14 

8

3.15 

0.16 

-0.38 

1.66 

-0.33 

-0.60 

1.83 

0.62 

-0.48 

-0.38 

1.57 

0.10 

1.67 

-0.52 

9

-0.33 

-0.22 

0.64 

0.87 

1.70 

-0.21 

0.24 

0.83 

0.18 

0.39 

0.47 

-0.15 

-0.55 

0.03 

10

0.52 

0.70 

0.12 

0.61 

0.82 

0.74 

0.94 

1.12 

1.01 

0.32 

0.31 

0.38 

0.48 

0.55 

11

0.90 

0.70 

0.71 

0.85 

1.00 

0.66 

0.29 

0.50 

1.07 

0.79 

0.34 

0.54 

0.32 

0.11 

12

1.12 

0.28 

2.61 

1.13 

0.00 

-0.72 

1.32 

0.69 

1.08 

-0.18 

2.17 

1.17 

-0.25 

0.63 

W2=

0.82 

-1.11 

0.80 

-0.03 

0.95 

1.88 

-0.15 

-1.62 

-1.12 

-0.06 

-0.05 

1.38 

B2=

0.16 

 

 5、避免过度拟合,需要对样本输出做干扰处理

对网络输入(已经归一化后的数据),在添加一个噪声向量,即Y=Y+noise,一般noise为均值为0的正态分布 ,即noise=normrnd(0,1,size(Y);         Y=Y+r*noise;

r为噪声强度,一般r非常小。

取r=0.01,加入BP神经网络拟合中,代码如下

function [W1,W2,B1,B2,eb,s2]=BPnnn(X,Y,n1,n,lr,sig)
[X]=mapminmax(X);
[Y,s2]=mapminmax(Y);
noise=normrnd(0,1,size(Y));
Y=Y+0.2*noise;
W1=rand(n1,13);B1=rand(n1,1);
W2=rand(1,n1);B2=rand(1,1);
E=ones(size(Y));
eb=[];
for i=1:nI1=X;O1=I1;I2=W1*O1+B1*E;O2=logsig(I2);I3=W2*O2+B2*E;O3=I3;err=Y-O3;hrr=sum(err.^2)^0.5;eb=[eb,hrr];if hrr<sigXt=datetime;disp(Xt);break;enddW2=err*O2';dB2=err*E';dW1=((W2'*err).*(O2.*(1-O2)))*X';dB1=((W2'*err).*(O2.*(1-O2)))*E';W1=W1+lr*dW1;B1=B1+lr*dB1;W2=W2+lr*dW2;B2=B2+lr*dB2;
end
plot(1:length(Y),Y,'--',1:length(Y),O3,'*-');
legend('Ñù±¾Êä³ö','ÍøÂçÊä³ö')

在隐含层神经元n1=12,学习效率lr=0.035,训练次数n=4000情况下,容差sig=0.003情况下,将有噪声(强度系数0.8)和无噪声两种情况的残差结果进行对比,见下图。可以看出,有噪声收敛速度慢于无噪声。

A=xlsread('d:\ganglengque.xlsx');
X=A(:,1:end-1)';Y=A(:,end)';
n1=12;lr=0.035;sig=0.003;n=4000;
[W1,W2,B1,B2,eb1,s1]=BPnn(X,Y,n1,n,lr,sig);
[W11,W21,B11,B21,eb2,s2]=BPnnn(X,Y,n1,n,lr,sig);
subplot(2,1,1);
bar(eb1);
subplot(2,1,2);
bar(eb2);

相关文章:

BP神经网络应用案例

目录 背景介绍 【神经网络符号说明】 【建立网络拓扑结构】 【神经网络学习步骤】 步骤1 准备输入和输出样本 步骤2 确定网络学习参数 步骤3 初始化网络权值W和阀值B 步骤4 计算网络第一层的输入和输出 步骤5 计算中间层&#xff08;隐含层输入和输出&#xff09; 步骤…...

日常学习记录随笔-大数据之日志(hadoop)收集实战

数据收集(nginx)--->数据分析---> 数据清洗--->数据聚合计算---数据展示 可能涉及到zabix 做任务调度我们的项目 电商日志分析 比如说我们现在有一个系统,我们的数仓建立也要有一个主题 我这个项目是什么我要干什么定义方向 对用户进行分析,用户信息 要懂整个数据的流…...

【云计算】相关解决方案介绍

文章目录 1.1 云服务环境 Eucalyptus1.1.1 介绍1.1.2 开源协议及语言1.1.3 官方网站 1.2 开源云计算平台 abiCloud1.2.1 开源协议及语言1.2.2 官方网站 1.3 分布式文件系统 Hadoop1.3.1 开源协议及语言1.3.2 官方网站 1.4 JBoss云计算项目集 StormGrind1.4.1 开源协议及语言1.4…...

攻防世界题目练习——Crypto密码新手+引导模式(二)(持续更新)

题目目录 1. 转轮机加密2. easychallenge 上一篇&#xff1a;攻防世界题目练习——Crypto密码新手引导模式&#xff08;一&#xff09;&#xff08;持续更新&#xff09; 1. 转轮机加密 首先了解一下轮转机加密吧。 传统密码学(三)——转轮密码机 题目内容如下&#xff1a; …...

LeetCode【1】两数之和

题目&#xff1a; 代码&#xff1a; public int[] twoSum(int[] nums, int target) {int[] result new int[2];Map<Integer, Integer> map new HashMap<>();// for (int i 0; i < nums.length; i) { // 这么写不能防重复啊&#xff01;注意这里不…...

【运维笔记】VMWare 另一个程序已锁定文件的一部分,进程无法访问

情景再现 这里使用的是VMware 17 解决办法 进入设置 点击选项&#xff0c;全选复制里面内容 进入文件夹&#xff0c;删除所有包含.lck后缀的文件和文件夹 再启动虚拟机即可...

[Springboot]统一响应和异常处理配置

背景 前后端分离情况下&#xff0c;后端接口通常只需要返回JSON数据。 但有时候因为某些原因可能会导致得不到正确的结果。 比如 因为登录密码错误&#xff0c;你不能直接返回错误信息和null&#xff0c;这样前端很难处理。 又比如 因为后端接口爆出了异常&#xff0c;也不能直…...

Redis第四五六章 持久化事务主从复制

Redis ⽀持 RDB 和 AOF 两种持久化机制&#xff0c;持久化功能有效地避免因进程退出造成数据丢失问题&#xff0c; 当下次重启时利⽤之前持久化的⽂件即可实现数据恢复。 目录 第四章 持久化 4.1 RDB 4.1.1 触发机制 4.1.2 流程说明 4.1.3 RDB ⽂件的处理 4.1.4 RDB 的优…...

【强烈推荐】免费的PDF工具,包括PDF拆分/分割、转WORD等功能的免费在线软件工具,救了大命,找了半天什么pdf365、福xipdf、还有哔果pdf全是打着免费名义收费,烦死了

PDF拆分 - 图文工具箱 - imgtool.net&#xff0c;嘎嘎好用&#xff0c;主要是免费 除此之外&#xff0c;还有其他的功能&#xff0c;需要的可以去看看...

SpringMVC源码分析(二)启动过程之RequestMappingHandlerMapping分析

a、http请求中的url是如何与对应Handler的即Controller对应method映射的&#xff1f; 在上篇中提到在SpringMVC中&#xff0c;初始化9大内置组件的时候其中有一个组件就是HandlerMapping&#xff0c;在初始化HandlerMapping的时候会加载代码中所有标注了Controller和RequestMap…...

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(7)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(6) 上一回讲到了drm_internal_framebuffer_create函数中的framebuffer_check函数。讲解了该函数的参数检查部分中的第二部分,本回对于该函数余下部分进行解析。 为了便于理解,再次贴出framebuffer_ch…...

2023 年 Arm A-Profile 架构发展

随着人工智能 (AI) 的兴起和安全威胁的加剧,计算需求不断发展,作为世界设备核心的基础计算架构也必须不断发展。这就是为什么我们的工程团队向普遍存在的 Arm 架构添加新功能和技术,然后软件团队确保软件尽可能无缝地适应这些未来的功能和技术。 Arm架构是如何开发的 Arm …...

2023年09月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 Python编程(1~6级)全部真题・点这里 第1题:红与黑 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 时间限…...

CentOS系统/root根目录扩容(扩展逻辑卷)

具体操作步骤 1、查看本机磁盘环境挂载情况 2、添加磁盘分区 3、开始扩容 4、同步到文件系统 1、查看本机磁盘环境挂载情况 [rooticon ~]# df -lh 可以看到/dev/mapper/centos-root 路径下容量为50G&#xff0c;我们要给这个路径下的容量扩容&#xff1a;[rooticon ~]# lsblk…...

苍穹外卖(三) 员工分页及技术实现细节

2. 员工分页查询 2.1 需求分析和设计 2.1.1 产品原型 2.1.2 接口设计 2.2 代码开发 2.2.1 设计DTO类 根据请求参数进行封装 2.2.2 封装PageResult 后面所有的分页查询&#xff0c;统一都封装为PageResult对象。 员工信息分页查询后端返回的对象类型为: Result 2.…...

二进制部署MySQL8.0

1、下载MySQL官方包 ## 下载MySQL [rootlocalhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz2、解压并移动安装包 # 解压安装包 [rootlocalhost ~]# tar xf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz# 移动 mv…...

全力以赴,火山引擎边缘云代表团出战亚运会

END 未来&#xff0c;火山引擎边缘云赛事阵容将继续全力以赴&#xff0c;通过领先、可信赖的云和智能技术&#xff0c;助力游戏行业呈现更加精彩的竞技赛事。...

WPF页面向后端传参

WPF页面&#xff08;前端&#xff09;向后端传参 1、编写一个Button&#xff0c;绑定后端命令&#xff0c;并传递参数&#xff1a; <ButtonWidth"100"Command"{Binding SendCommand}"CommandParameter"{Binding ElementNameSendMessage, PathTex…...

PyTorch 入门

一、说明 深度学习是机器学习的一个分支&#xff0c;其中编写的算法模仿人脑的功能。深度学习中最常用的库是 Tensorflow 和 PyTorch。由于有各种可用的深度学习框架&#xff0c;人们可能想知道何时使用 PyTorch。以下是人们更喜欢使用 Pytorch 来完成特定任务的原因。 Pytorch…...

微信自动批量添加好友的方法

在现在的营销中微信已成为一种重要的沟通方式。微信目前是没有自动批量添加好友的功能&#xff0c;需要运营者一个一个手动去添加&#xff0c;这样太过于浪费时间&#xff0c;并且加频繁了还容易被封号&#xff0c;今天给大家介绍几种手动批量加好友的方式以及怎么借助第三方软…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...