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

最优化方法Python计算:无约束优化应用——神经网络回归模型

人类大脑有数百亿个相互连接的神经元(如下图(a)所示),这些神经元通过树突从其他神经元接收信息,在细胞体内综合、并变换信息,通过轴突上的突触向其他神经元传递信息。我们在博文《最优化方法Python计算:无约束优化应用——逻辑回归模型》中讨论的逻辑回归模型(如下图(b)所示)与神经元十分相似,由输入端接收数据 x = ( x 1 x 2 ⋮ x n ) \boldsymbol{x}=\begin{pmatrix} x_1\\x_2\\\vdots\\x_n \end{pmatrix} x= x1x2xn ,作加权和 ∑ i = 1 n w i x i \sum\limits_{i=1}^nw_ix_i i=1nwixi加上偏移量 b b b,即 ∑ i = 1 n w i x i + b \sum\limits_{i=1}^nw_ix_i+b i=1nwixi+b,用逻辑函数将其映射到区间 ( 0 , 1 ) (0,1) (0,1)内,然后将如此变换所得的信息 y y y输出。
在这里插入图片描述
这启发人们将诸多逻辑回归模型分层连接起来,构成人工神经网络,创建出多层感应模型。下图展示了一个包括输入层、输出层和两个隐藏层(图中阴影部分)的人工神经网络。图中,黑点表示数据节点,圆圈表示人工神经元的处理节点。
在这里插入图片描述
记逻辑函数 sigmoid ( x ) = 1 1 + e − x = φ ( x ) \text{sigmoid}(x)=\frac{1}{1+e^{-x}}=\varphi(x) sigmoid(x)=1+ex1=φ(x)。设多层感应模型的输入数据为 n n n维向量 x = ( x 1 x 2 ⋮ x n ) \boldsymbol{x}=\begin{pmatrix} x_1\\x_2\\\vdots\\x_n \end{pmatrix} x= x1x2xn 。不算输入层,模型连同输出层及隐藏层共有 l l l层。记 m 0 = n m_0=n m0=n,第 i i i层( 0 < i ≤ l 0<i\leq l 0<il)含有 m i m_i mi个神经元。于是,相邻的两层,第 i − 1 i-1 i1和第 i i i之间共有 ( m i − 1 + 1 ) m i (m_{i-1}+1)m_{i} (mi1+1)mi个待定参数。因此,模型具有
p = ∑ i = 1 l ( m i − 1 + 1 ) m i p=\sum_{i=1}^l(m_{i-1}+1)m_i p=i=1l(mi1+1)mi
个待定参数,组织成 p p p维向量 w = ( w 1 w 2 ⋮ w p ) \boldsymbol{w}=\begin{pmatrix} w_1\\w_2\\\vdots\\w_p \end{pmatrix} w= w1w2wp 。设 k 0 = 0 k_0=0 k0=0,对 1 < i ≤ l 1<i\leq l 1<il k i = ∑ t = 0 i − 1 ( m t + 1 ) m t + 1 k_i=\sum\limits_{t=0}^{i-1}(m_{t}+1)m_{t+1} ki=t=0i1(mt+1)mt+1,记 ( m i − 1 − 1 ) × m i (m_{i-1}-1)\times m_i (mi11)×mi矩阵
w i = ( w k i + 1 ⋯ w k i + ( m i − 1 + 1 ) ( m i − 1 ) + 1 ⋮ ⋱ ⋮ w k i + ( m i − 1 + 1 ) ⋯ w k i + ( m i − 1 + 1 ) m i ) , i = 1 , 2 ⋯ , l \boldsymbol{w}_i=\begin{pmatrix} w_{k_i+1}&\cdots&w_{k_i+(m_{i-1}+1)(m_i-1)+1}\\ \vdots&\ddots&\vdots\\ w_{k_i+(m_{i-1}+1)}&\cdots&w_{k_i+(m_{i-1}+1)m_i} \end{pmatrix}, i=1,2\cdots,l wi= wki+1wki+(mi1+1)wki+(mi1+1)(mi1)+1wki+(mi1+1)mi ,i=1,2,l
定义函数
F ( w ; x ) = φ ( ( ⋯ φ ⏟ l ( ( x ⊤ , 1 ) w 1 ) , 1 ) , ⋯ ) , 1 ) w l ) . F(\boldsymbol{w};\boldsymbol{x})=\underbrace{\varphi((\cdots\varphi}_l((\boldsymbol{x}^\top,1)\boldsymbol{w}_1),1),\cdots),1)\boldsymbol{w}_l). F(w;x)=l φ((φ((x,1)w1),1),),1)wl).
该函数反映了数据从输入层到输出层的传输方向,称为前向传播函数,作为多层感应模型的拟合函数。按此定义,我们构建如下的多层感应模型类

import numpy as np												#导入numpy
class MLPModel(LogicModel):										#多层感应模型def construct(self, X, hidden_layer_sizes):					#确定网络结构if len(X.shape)==1:										#计算输入端节点数k = 1else:k = X.shape[1]self.layer_sizes = (k,)+hidden_layer_sizes+(1,)  def patternlen(self):										#模式长度p = 0l = len(self.layer_sizes)								#总层数for i in range(l-1):									#逐层累加m = self.layer_sizes[i]n = self.layer_sizes[i+1]p += (m+1)*nreturn pdef F(self, w, x):											#拟合函数l = len(self.layer_sizes)								#总层数m, n = self.layer_sizes[0],self.layer_sizes[1]k = (m+1)*n												#第0层参数个数W = w[0:k].reshape(m+1,n)								#0层参数折叠为矩阵z = LogicModel.F(self, W, x)							#第1层的输入for i in range(1, l-1):									#逐层计算m = self.layer_sizes[i]								#千层节点数n = self.layer_sizes[i+1]							#后层节点数W = w[k:k+(m+1)*n].reshape(m+1,n)					#本层参数矩阵z = np.hstack((z, np.ones(z.shape[0]).				#本层输入矩阵reshape(z.shape[0], 1)))z = LogicModel.F(self, W, z)						#下一层输入k += (m+1)*n										#下一层参数下标起点y = z.flatten()											#展平输出return ydef fit(self, X, Y, w = None, hidden_layer_sizes = (100,)):	#重载训练函数self.construct(X, hidden_layer_sizes)LogicModel.fit(self, X, Y, w)
class MLPRegressor(Regression, MLPModel):'''神经网络回归模型'''

MLPModel继承了LogicModel类(详见博文《最优化方法Python计算:无约束优化应用——逻辑回归模型》)在MLPModel中除了重载模式长度计算函数patternlen、拟合函数F和训练函数fit外,增加了一个LogicModel类所没有的对象函数construct,用来确定神经网络的结构:有少层,各层有多少个神经元。
具体而言,第3~8行的construct函数,利用传递给它的输入矩阵X和隐藏层结构hidden_layer_sizes,这是一个元组,计算神经网络的各层结构。第4~7行的if-else分支按输入数据X的形状确定输入层的节点数k。第8行将元组(k,1)和(1,)分别添加在hidden_layer_sizes的首尾两端,即确定了网络结构layer_sizes。
第9~16行重载了模式长度计算函数patternlen。第11行根据模型的结构元组layer_sizes的长度确定层数l。第12~15行的for循环组成计算各层的参数个数:m为前层节点数(第13行),n为后层节点数(第14行),则第15行中(m+1)*n就是本层的参数个数,这是因为后层的每个节点的输入必须添加一个偏移量。第16行将算得的本层参数个数累加到总数p(第10行初始化为0)。
第17~32行重载拟合函数F,参数中w表示模式 w ∈ R p \boldsymbol{w}\in\text{R}^p wRp,x表示自变量 ( x ⊤ , 1 ) (\boldsymbol{x}^\top,1) (x,1)。第18行读取网络层数l。第19~22行计算第1隐藏层的输入:第19行读取第0层节点数m第1隐藏层节点数n。第20行计算第0层参数个数k(也是第1层参数下标起点)。第22行构造第0层的参数矩阵W。第22行计算 φ ( ( x ⊤ , 1 ) w 1 ) \varphi((\boldsymbol{x}^\top,1)\boldsymbol{w}_1) φ((x,1)w1),作为第1隐藏层的输入z。第23~20行的for循环依次逐层构造本层参数矩阵 w i \boldsymbol{w}_i wi(第26行)和输入 ( z i ⊤ , 1 ) (\boldsymbol{z}_i^\top,1) (zi,1)(第27~28行),第30行计算下一层的输入 φ ( ( z i ⊤ , 1 ) w i ) \varphi((\boldsymbol{z}_i^\top,1)\boldsymbol{w}_i) φ((zi,1)wi)为z,第30行更新下一层参数下标起点k。完成循环,所得y因为是矩阵运算的结果,第31层将其扁平化为一维数组。第33~35行重载训练函数fit。与其祖先LogicModel的(也是LineModel)fit函数相比,多了一个表示网络结构的参数hidden_layer_sizes。如前所述,这是一个元组,缺省值为(100,),意味着只有1个隐藏层,隐藏层含100个神经元。函数体内第34行调用自身的construct函数,构造网络结构layer_sizes,供调用拟合函数F时使用。第35行调用祖先LogicModel的fit函数完成训练。
第36~37用Regression类和MLPModel类联合构成用于预测的多层感应模型类MLPRegressor。
理论上,只要给定足够多的隐藏层和层内所含神经元,多层感应模型能拟合任意函数。
例1 用MLPRegressor对象拟合函数 y = x 2 y=x^2 y=x2
:先构造训练数据:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
np.random.seed(2023)
x = uniform.rvs(-1, 2, 50)
y = (x**2)
plt.scatter(x, y)
plt.show()

第5行产生50个服从均匀分布 U ( 0 , 1 ) U(0,1) U(0,1)的随机数值,赋予x。第6行计算x的平方赋予y。第7行绘制 ( x , y ) (x,y) (x,y)散点图。
在这里插入图片描述
用仅含一个隐藏层,隐藏层中包含3个神经元的多层感应器拟合 y = x 2 y=x^2 y=x2

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
.random.seed(2023)
x = uniform.rvs(-1, 2, 50)
y = (x**2)
nnw = MLPRegressor()
nnw.fit(x,y,hidden_layer_sizes = (3,))
yp, acc = nnw.test(x, y)
plt.scatter(x, yp)
plt.show()
print('1隐藏层含3个神经元网络拟合均方根误差%.4f'%acc)

前5行与前同。第6行创建MLPRegressor类对象nnw。第7行用x,y训练nnw为含1个隐藏层,隐藏层含3个神经元的神经网络。第8行调用nnw的test函数,用返回的yp绘制 ( x , y p ) (x,y_p) (x,yp)散点图。
在这里插入图片描述

训练中...,稍候
726次迭代后完成训练。
1隐藏层含3个神经元网络拟合均方根误差0.0238

用含两个隐藏层,分别包含7个、3个神经元的多层感应器拟合 y = x 2 y=x^2 y=x2

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
.random.seed(2023)
x = uniform.rvs(-1, 2, 50)
y = (x**2)
nnw = MLPRegressor()
nnw.fit(x, y, hidden_layer_sizes = (7, 3))
yp, acc = nnw.test(x,y)
plt.scatter(x, yp)
plt.show()
print('2隐藏层含各7,3个神经元网络拟合方根误差%.4f'%acc)

与上一段代码比较,仅第8行训练nnw的网络换成两个隐藏层,分别包含7个、3个神经元的多层感应器。运行程序,输出
在这里插入图片描述

训练中...,稍候
1967次迭代后完成训练。
2隐藏层含各73个神经元网络拟合方根误差0.0053

比前一个显然拟合得更好,但也付出了计算时间的代价。
Say good bye, 2023.

相关文章:

最优化方法Python计算:无约束优化应用——神经网络回归模型

人类大脑有数百亿个相互连接的神经元&#xff08;如下图(a)所示&#xff09;&#xff0c;这些神经元通过树突从其他神经元接收信息&#xff0c;在细胞体内综合、并变换信息&#xff0c;通过轴突上的突触向其他神经元传递信息。我们在博文《最优化方法Python计算&#xff1a;无约…...

Spring Data Redis对象缓存序列化问题

相信在项目中&#xff0c;你一定是经常使用 Redis &#xff0c;那么&#xff0c;你是怎么使用的呢&#xff1f;在使用时&#xff0c;有没有遇到同我一样&#xff0c;对象缓存序列化问题的呢&#xff1f;那么&#xff0c;你又是如何解决的呢&#xff1f; Redis 使用示例 添加依…...

自动驾驶代客泊车AVP巡航规划详细设计

目 录 巡航规划详细设计... 1 修改记录... 2 目 录... 3 1 背景... 5 2 系统环境... 6 2.1 巡航规划与其它模块联系... 6 2.2 巡航规划接口说明... 6 3 规划模块设计... 9 3.1 巡航规划架构图... 9 3.2 预处理... 10 3.3 Planner. 10 3.3.1 Geometry planner. 10 …...

亚马逊云科技 re:Invent 2023 产品体验:亚马逊云科技产品应用实践 国赛选手带你看 Elasticache Serverless

抛砖引玉 讲一下作者背景&#xff0c;曾经参加过国内世界技能大赛云计算的选拔&#xff0c;那么在竞赛中包含两类&#xff0c;一类是架构类竞赛&#xff0c;另一类就是 TroubleShooting 竞赛&#xff0c;对应的分别为亚马逊云科技 GameDay 和亚马逊云科技 Jam&#xff0c;想必…...

Flink on K8S集群搭建及StreamPark平台安装

1.环境准备 1.1 介绍 在使用 Flink&Spark 时发现从编程模型, 启动配置到运维管理都有很多可以抽象共用的地方, 目前streampark提供了一个flink一站式的流处理作业开发管理平台, 从流处理作业开发到上线全生命周期都做了支持, 是一个一站式的流出来计算平台。 未来spark开…...

SpringBoot如何优雅的处理免登录接口

在项目开发过程中&#xff0c;会有很多API接口不需要登录就能直接访问&#xff0c;比如公开数据查询之类的 ~ 常规处理方法基本是 使用拦截器或过滤器&#xff0c;拦截需要认证的请求路径。在拦截器中判断session或token信息&#xff0c;如果存在则放行&#xff0c;否则跳转到…...

元旦档首日票房超4.69亿,“下雪场尴尬”上热搜!

哇塞&#xff0c;元旦假期终于来啦&#xff01;&#x1f389;在这个喜庆的时刻&#xff0c;电影院也热闹非凡&#xff0c;据猫眼专业版数据显示&#xff0c;截至12月30日&#xff0c;2023年元旦档首日票房竟然超过了4.69亿&#xff01;这简直是个天文数字啊&#xff01;&#x…...

CentOS系统中设置IP地址的方式和存在的问题

在CentOS系统中设置IP地址通常涉及以下步骤&#xff1a; 打开网络接口配置文件&#xff1a; 使用文本编辑器&#xff08;如vi、nano或emacs&#xff09;打开 /etc/sysconfig/network-scripts/ifcfg-eth0 文件。这里的"eth0"是网卡的名称&#xff0c;如果你的系统中有…...

使用vmware,在ubuntu18.04中使用笔记本的摄像头

步骤1&#xff1a;在windows中检查相机状态 win10系统中&#xff0c;在左下的搜索栏&#xff0c;搜索“相机”&#xff0c;点击进入即可打开相机&#xff0c;并正常显示图像。 注意&#xff1a;如果相机连接到了虚拟机&#xff0c;则不能显示正常。 步骤2&#xff1a;在ubuntu…...

中间件系列 - Redis入门到实战(高级篇-分布式缓存)

前言 学习视频&#xff1a; 黑马程序员Redis入门到实战教程&#xff0c;深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 中间件系列 - Redis入门到实战 本内容仅用于个人学习笔记&#xff0c;如有侵扰&#xff0c;联系删除 学习目标 Redis持久化Redis主从…...

使用Visual Studio调试VisionPro脚本

使用Visual Studio调试VisionPro脚本 方法一 &#xff1a; 修改项目文件 csproj步骤&#xff1a; 方法二 &#xff1a; Visual Studio附加功能步骤&#xff1a; 方法一 &#xff1a; 修改项目文件 csproj 步骤&#xff1a; 开启VisionPro脚本调试功能 创建一个VisionPro程序…...

Ubuntu安装K8S的dashboard(管理页面)

原文网址&#xff1a;Ubuntu安装k8s的dashboard&#xff08;管理页面&#xff09;-CSDN博客 简介 本文介绍Ubuntu安装k8s的dashboard&#xff08;管理页面&#xff09;的方法。 Dashboard的作用有&#xff1a;便捷操作、监控、分析、概览。 相关网址 官网地址&#xff1a;…...

zookeeper之集群搭建

1. 集群角色 zookeeper集群下&#xff0c;有3种角色&#xff0c;分别是领导者(Leader)、跟随着(Follower)、观察者(Observer)。接下来我们分别看一下这三种角色的作用。 领导者(Leader)&#xff1a; 事务请求&#xff08;写操作&#xff09;的唯一调度者和处理者&#xff0c;保…...

从0开始界面设计师 Qt Designer

QT程序界面的 一个个窗口、控件&#xff0c;就是像上面那样用相应的代码创建出来的。 但是&#xff0c;把你的脑海里的界面&#xff0c;用代码直接写出来&#xff0c;是有些困难的。 很多时候&#xff0c;运行时呈现的样子&#xff0c;不是我们要的。我们经常还要修改代码调整界…...

Html / CSS刷题笔记

WebKit是一个开源的浏览器引擎&#xff0c;它最初是由苹果公司开发的&#xff0c;并且被广泛用于Safari浏览器和其他基于WebKit的浏览器&#xff0c;比如Google Chrome的早期版本。它也是构建许多移动设备浏览器的基础。WebKit的主要功能是解析HTML和CSS&#xff0c;并将其渲染…...

关于“Python”的核心知识点整理大全51

目录 17.2.2 添加自定义工具提示 bar_descriptions.py 17.2.3 根据数据绘图 python_repos.py 17.2.4 在图表中添加可单击的链接 python_repos.py 17.3 Hacker News API hn_submissions.py 17.4 小结 往期快速传送门&#x1f446;&#xff08;在文章最后&#xff09;&a…...

Termius for Mac/Win:一站式终端模拟器、SSH 和 SFTP 客户端软件的卓越选择

随着远程工作和云技术的普及&#xff0c;对于高效安全的远程访问和管理服务器变得至关重要。Termius&#xff0c;一款强大且易用的终端模拟器、SSH 和 SFTP 客户端软件&#xff0c;正是满足这一需求的理想选择。 Termius 提供了一站式的解决方案&#xff0c;允许用户通过单一平…...

vr体验馆用什么软件计时计费,如遇到停电软件程序如何恢复时间

vr体验馆用什么软件计时计费&#xff0c;如遇到停电软件程序如何恢复时间 一、软件程序问答 如下图&#xff0c;软件以 佳易王vr体验馆计时计费软件V17.9为例说明 1、软件如何计时间&#xff1f; 点击相应编号的开始计时按钮即可 2、遇到停电再打开软件时间可以恢复吗&…...

HTML---JavaScript基础

文章目录 目录 文章目录 本章目标 一.JavaScript基础 概述 特点 JavaScript 基本机构 语法 网页中引用JavaScript的方式 二. JavaScript核心语法 变量 ​编辑 数据类型 数组 练习 本章目标 掌握JavaScript的组成掌握JavaScript的基本语法会定义和使用函数会使用工具进行…...

2023年03月17日_微软和谷歌办公AI的感慨

2023年3月17日 最近这个科技圈的消息 有点爆炸的让人应接不暇了 各种大公司简直就是神仙打架 你从来没有见过这么密集的 这么高频的产品发布 昨天微软是发布了Office 365 Copilot 在里边提供了大量的AI的功能 然后谷歌呢也发布了这个Google Workspace AI 也是跟365 Cop…...

2023年新一代开发者工具 Vue ,正式开源!

以下文章来源于前端充电宝 &#xff0c;作者CUGGZ 近日&#xff0c;Vue 新一代开发者工具&#xff08;DevTools&#xff09;正式开源&#xff01;Vue DevTools 是一个旨在增强 Vue 开发人员体验的工具&#xff0c;它提供了一些功能来帮助开发者更好地了解 Vue 应用。下面就来看…...

springboot(ssm校园组团平台 高校组团系统 Java系统

springboot(ssm校园组团平台 高校组团系统 Java系统 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#xff09; 数据库…...

QT 利用开源7z 实现解压各种压缩包,包括进度条和文件名的显示(zip,7z,rar,iso等50多种格式)

想做一个winRAR一样的解压软件吗?很简单,利用开源的7z库就能实现。我看网上其他人说的方法不敢苟同,误人子弟。以前自己在项目中使用过7z,这次又有需要,就想记录下来。如果你研究过如何用7z的话,一定知道7z的每一个GUID都代表了一种格式,50多种GUID也就有50多个格式,最…...

androidStudio 没有新建flutter工程的入口?

装了flutter dart 插件 执行了 flutter doctor 也执行了 flutter doctor --android-license 最后重启了 androidStudio 还是没发现在哪新建flutter项目工程 原来 plugins 下的 Android APK Support没有勾选...

微信小程序开发系列-03全局配置中的“window”和“tabBar”

微信小程序开发系列目录 《微信小程序开发系列-01创建一个最小的小程序项目》《微信小程序开发系列-02注册小程序》《微信小程序开发系列-03全局配置中的“window”和“tabBar”》《微信小程序开发系列-04获取用户图像和昵称》《微信小程序开发系列-05登录小程序》《微信小程序…...

基于CNN神经网络的手写字符识别实验报告

作业要求 具体实验内容根据实际情况自拟&#xff0c;可以是传统的BP神经网络&#xff0c;Hopfield神经网络&#xff0c;也可以是深度学习相关内容。 数据集自选&#xff0c;可以是自建数据集&#xff0c;或MNIST&#xff0c;CIFAR10等公开数据集。 实验报告内容包括但不限于&am…...

Ubuntu 系统中安装和配置 clash

本博客参考 ubuntu下怎么安装clash-ghc? 和 对 clash 进行下载和配置&#xff0c;如有需要可自行点击链接查看原文。 下载 clash 打开终端&#xff08;进入到 主目录/用户目录 &#xff09;&#xff0c;通过命令下载 clash 文件并将其中命名为 clash&#xff1a; # 下载 cl…...

DragonEnglish:COCA20000+单词+释义

去年的时候接触到了 COCA20000 单词&#xff0c;对这种给单词特定顺序的方式蛮感兴趣的。因为我当时接触的版本只有单词或者单词释义的版本&#xff0c;所以我直接通过各种方式给它搭配了音标例句发音&#xff0c;然后每100个切割成1份&#xff0c;分成了 202 个文件来学习&…...

『亚马逊云科技产品测评』活动征文|云服务器如何快速搭建个人博客(图文详解)

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 文章目录 引言一、前期准备步骤1.1 准备一个亚马逊 EC2 服务器1.2 进入控…...

QT上位机开发(乘法计算小软件)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面一篇文章&#xff0c;我们学习了怎么创建qt的第一个工程&#xff0c;怎么用designer给qt修改界面。虽然我们到目前为止&#xff0c;还没有编写…...

【Matlab】BP 神经网络时序预测算法

资源下载&#xff1a; https://download.csdn.net/download/vvoennvv/88681507 一&#xff0c;概述 BP 神经网络是一种常见的人工神经网络&#xff0c;也是一种有监督学习的神经网络。其全称为“Back Propagation”&#xff0c;即反向传播算法。BP 神经网络主要由输入层、隐藏层…...

GPT在企业自动化方面的应用

GPT和类似的自然语言处理技术在企业自动化方面有许多应用。以下是一些主要的应用领域&#xff1a; 自动化客户支持&#xff1a; 使用GPT可以构建自动化的客户支持系统&#xff0c;能够理解和生成自然语言文本&#xff0c;回答常见问题&#xff0c;解决用户的疑问和问题。 自动…...

STM32——通用计时器

通用计时器框图 1.时钟源 1&#xff09;内部时钟(CK_INT) 2&#xff09;外部时钟模式 1&#xff1a;外部输入引脚(TIx)&#xff0c;x1&#xff0c;2&#xff08;即只能来自于通道 1 或者通道 2&#xff09; 3&#xff09;外部时钟模式 2&#xff1a;外部触发输入(ETR) 4&#…...

【HarmonyOS】鸿蒙开发简介与项目基础配置演示

从今天开始&#xff0c;博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”&#xff0c;对于刚接触这项技术的小伙伴在学习鸿蒙开发之前&#xff0c;有必要先了解一下鸿蒙&#xff0c;从你的角度来讲&#xff0c;你认为什么是鸿蒙呢&#xff1f;它出现的意义又是…...

[MySQL] MySQL数据库创建存储过程

一、mysql存储过程的相关知识 1.1 存储过程的概念 存储过程是一组为了完成特定功能的SQL语句集合。类似于于其他编程语言中的函数&#xff0c;定义一个函数方法&#xff0c;可以随时起到传参调用的功能。 存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用…...

mysql哪些情况下不走索引?

mysql哪些情况下不走索引&#xff1f; MySQL是一种常用的关系型数据库&#xff0c;它使用索引来提高查询性能。然而&#xff0c;并非所有的SQL语句都能充分利用索引。在本文中&#xff0c;我们将介绍几个无法使用到索引的MySQL SQL语句。 1. 使用函数&#xff1a;当SQL语句中…...

蓝桥杯python比赛历届真题99道经典练习题 (13-20)

【程序13】 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 2.程序…...

初识javaWeb

一、JavaWeb是什么&#xff1f; 1、概念 javaWeb指的是使用java语言进行互联网领域项目开发的技术栈——进行web项目开发所需的技术的集合。 -Web前端——在浏览器中用户可以看到的网页 -Web后端——为前端提供数据的程序 2、Web项目 java语言是可以进行多种类型的项目开发&a…...

day5--java基础编程:异常,内部类

6 异常 6.1 异常概述 出现背景&#xff1a; 在使用计算机语言进行项目开发的过程中&#xff0c;即使程序员把代码写得尽善尽美&#xff0c;在系统的运行过程中仍然会遇到一些问题&#xff0c;因为很多问题不是靠代码能够避免的&#xff0c;比如:客户输入数据的格式&#xff0c…...

2023.12.28 关于 Redis 数据类型 List 内部编码、应用场景

目录 List 编码方式 早期版本 现今版本 List 实际应用 多表之间的关联关系 消息队列 频道&#xff08;多列表&#xff09;消息队列 微博 Timeline 栈 & 队列 List 编码方式 早期版本 早期版本 List 类型的内部编码方式有两种 ziplist&#xff08;压缩列表&#xf…...

uni-app page新建以及page外观配置

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…...

问题:执行conda init 提示 No action taken,然后无法正确激活环境

执行完下面代码后&#xff0c; conda activate base 报错&#xff0c;提示先执行conda init,于是再执行下面代码 conda init发现还报错提示提示 No action taken。 解决方法&#xff1a; 打开一个新的终端窗口&#xff0c;您应该就可以正常使用conda命令。&#xff08;把其…...

SpringBoot 增量/瘦身部署jar 包

背景 SpringBoot 项目的部署一般采用全量jar 包方式部署相关项目&#xff0c;如果我们对相关的Contrller\Service\Dao\Mapper 层进行相关业务调整就需要重新编译全量jar 包&#xff08;包大小约为200M左右&#xff09;实在太麻烦了。 本文:重点讲解使用SpringBoot 的增量/瘦身…...

AI客服的评分机制及自动化测试

智能客服的评分机制及自动化测试 使用pytest来编写智能客服的测试框架&#xff1a; 准备一个CSV文件来存储测试用例和预期结果。编写测试脚本&#xff0c;其中包含测试用例的读取、发送请求、评分逻辑和结果验证。使用pytest断言来验证测试结果。 首先安装pytest和requests库…...

【Matlab】ELM极限学习机时序预测算法

资源下载&#xff1a; https://download.csdn.net/download/vvoennvv/88681649 一&#xff0c;概述 ELM&#xff08;Extreme Learning Machine&#xff09;是一种单层前馈神经网络结构&#xff0c;与传统神经网络不同的是&#xff0c;ELM的隐层神经元权重以及偏置都是随机产生的…...

m3u8网络视频文件下载方法

在windows下&#xff0c;使用命令行cmd的命令下载m3u8视频文件并保存为mp4文件。 1.下载ffmpeg&#xff0c;访问FFmpeg官方网站&#xff1a;https://www.ffmpeg.org/进行下载 ffmpeg下载&#xff0c;安装&#xff0c;操作说明 https://blog.csdn.net/m0_53157282/article/det…...

相机内参标定理论篇------张正友标定法

一、为什么做相机标定&#xff1f; 标定是为了得到相机坐标系下的点和图像像素点的映射关系&#xff0c;为摄影几何、计算机视觉等应用做准备。 二、为什么需要张正友标定法&#xff1f; 张正友标定法使手工标定相机成为可能&#xff0c;使相机标定不再需要精密的设备帮助。…...

鸿蒙 Window 环境的搭建

鸿蒙操作系统是国内自研的新一代的智能终端操作系统&#xff0c;支持多种终端设备部署&#xff0c;能够适配不同类别的硬件资源和功能需求。是一款面向万物互联的全场景分布式操作系统。 下载、安装与配置 DevEco Studio支持Windows系统和macOS系统 Windows系统配置华为官方推…...

新一代大语言模型在Amazon Bedrock引领人工智能潮流

亚马逊Bedrock平台推出全新Amazon Titan大语言模型&#xff0c;为大型数据集预处理提供强大支持。亚马逊云科技开发者大会演讲重点介绍了Amazon Titan在文本大语言模型领域的创新&#xff0c;以及如何通过Bedrock平台实现定制化应用。 亚马逊Bedrock平台的主要产品经理Brent S…...

kafka实现延迟消息

背景 我们知道消息中间件mq是支持延迟消息的发送功能的&#xff0c;但是kafka不支持这种直接的用法&#xff0c;所以我们需要独立实现这个功能&#xff0c;以下是在kafka中实现消息延时投递功能的一种方案 kafka实现延时消息 主要的思路是增加一个检测服务&#xff0c;这个检…...