Haprxy七层代理

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档) SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心... 立即下载

一、负载均衡

负载均衡:LoadBalance ,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了公司业务的并发处理能力、保证了业务的高可用性、方便了业务后期的水平动态扩展

1.2为什么用负载均衡

web服务器的动态水平扩展-->对用户无感知

增加业务并发访问及处理能力-->解决单服务器瓶颈问题

节约公网IP地址-->降低IT支出成本

隐藏内部服务器IP-->提高内部服务器安全性

配置简单-->固定格式的配置文件

功能丰富-->支持四层和七层,支持动态下线主机

性能较强-->并发数万甚至数十万

1.3负载均衡类型

1.3.1 四层负载均衡

1.通过ip+port决定负载均衡的去向

2.对流量请求进行NAT处理,转发至后台服务器

3.记录tcp、udp流量分别是由哪台服务器处理,后续该请求连接的流量都通过该服务器处理

4.支持四层的软件

lvs:重量级四层负载均衡器

nginx:轻量级四层负载均衡器

Haproxy:模拟四层转发

1.3.2 七层负载均衡

通过虚拟ur|或主机ip进行流量识别,根据应用层信息进行解析,决定是否需要进行负载均衡。

代理后台服务器与客户端建立连接,如nginx可代理前后端,与前端客户端tcp连接,与后端服务器建立tcp连接,

支持7层代理的软件:

nginx:基于http协议

Haproxy:七层代理,会话保持、标记、路径转移等

二、Haproxy的安装和服务信息

软件包:haproxy

版本查看:haproxy -v

2.1Haproxy的基本配置信息

global:全局配置段

进程及安全配置相关参数

性能调整相关参数

debug参数

proxies:代理配置段

defaults:为frontend,backend,listen提供默认配置

frontend:前端,相当于nginx中的server{}

backend:后端,相当于nginx中的upstream{}

listen:同时拥有前端后端配置,配置简单

2.1.2 global配置参数说明

global
log 127.0.0.1 local2                                #定义全局的syslog服务器;日志服务器需要开启UDP协议,最多可以定义两个
chroot /var/lib/haproxy                            #锁定运行目录
pidfile /var/run/haproxy.pid                     #指定pid文件
maxconn 100000                                   #指定最大连接数
user haproxy                                          #指定haproxy的运行用户
group haproxy                                        #指定haproxy的运行组
daemon                                                  #指定haproxy以守护进程方式运行
# turn on stats unix socket
stats socket /var/lib/haproxy/stats          #指定haproxy的套接字文件
nbproc 2                                                 #指定haproxy的work进程数量,默认是1个
cpu-map 1 0                                         #指定第一个work绑定第一个cpu核心
cpu-map 2 1                                         #指定第二个work绑定第二个cpu核心
nbthread 2                                              #指定haproxy的线程数量,默认每个进程一个线程,此参数与nbproc互斥
maxsslconn 100000                                 #每个haproxy进程ssl最大连接数,用于haproxy 配置了证书的场景下
maxconnrate 100                                         #指定每个客户端每秒建立连接的最大数量
2.1.3 proxies配置参数说明
defaults 默认配置项,针对以下的frontenf、backend和listen生效,可以多个name也可以没有name
frontend 前端servername,类似于nginx的一个虚拟主机server和LVS服务集群
backend 后端服务器组,等于nginx和upstream的LVS中的RS服务器
listen 将frontend和backend合并在一起配置,相对于frontend和backend配置更简洁,生产常用
defaults
mode http #HAProxy实例使用的连接协议
log global #指定日志地址和记录日志条目的
syslog/rsyslog日志设备
#此处的 global表示使用 global配置段中
设定的log值。
option httplog #日志记录选项,httplog表示记录与 HTTP
会话相关的各种属性值
#包括 HTTP请求、会话状态、连接数、源地
址以及连接时间等
option dontlognull #dontlognull表示不记录空会话连接日志
option http-server-close #等待客户端完整HTTP请求的时间,此处为等
待10s。
option forwardfor except 127.0.0.0/8 #透传客户端真实IP至后端web服务器
#在apache配置文件中加入:<br>%{X
Forwarded-For}i
#后在webserver中看日志即可看到地址透传
信息
option redispatch #当server Id对应的服务器挂掉后,强制定
向到其他健康的服务器,重新派发
option http-keep-alive #开启与客户端的会话保持
retries 3 #连接后端服务器失败次数
timeout http-request 10s #等待客户端请求完全被接收和处理的最长时
间
timeout queue 1m #设置删除连接和客户端收到503或服务不可
用等提示信息前的等待时间
timeout connect 120s #设置等待服务器连接成功的时间
timeout client 600s #设置允许客户端处于非活动状态,即既不发
送数据也不接收数据的时间
timeout server 600s #设置服务器超时时间,即允许服务器处于既
不接收也不发送数据的非活动时间
timeout http-keep-alive 60s #session 会话保持超时时间,此时间段内
会转发到相同的后端服务器
timeout check 10s #指定后端服务器健康检查的超时时间
maxconn 3000
default-server inter 1000 weight 3

 2.2 socat工具

对服务器动态权重和其他状态可以利用socat工具进行调整,socat是Linux下的一个多功能的网络工具,名字来由是socket cat,相当于netcat的增强版。其主要特点就是在两个数据流之间建立双向通道,且支持众多协议和连接方式,如IP、TCP、UDP、IPV6、Socket文件等

三、Haproxy的算法

Haproxy通过固定参数balance指明对后端服务器的调度算法

balance参数可以配置在listen或backend选项中

Haproxy的调度算法分为静态和动态调度算法

有些算法可以根据参数在静态和动态算法中相互转换

3.1静态算法

按照事先定义好的规则轮询公平调度,不关心后端服务器当前负载、连接数和响应速度等,且无法实时修改权重(且只能为0和1,不支持其他值),只能靠重启Haproxy生效

3.1.1 static-rr:基于权重的轮询调度

不支持运行时利用socat进行权重的动态调整(只支持0和1,不支持其他值)
不支持端服务器慢启动
其后端主机数量没有限制,相当于LVS中的wrr
[慢启动是指服务器在刚刚启动时,不会把他应该承担的访问压力全部给它,而应该是先给一部分,当没问题后再给一部分]

3.1.2 first

不支持运行时利用socat进行权重的动态调整(只支持0和1,不支持其他值)
不支持端服务器慢启动
其后端主机数量没有限制,相当于LVS中的wrr
[慢启动是指服务器在刚刚启动时,不会把他应该承担的访问压力全部给它,而应该是先给一部分,当没问题后再给一部分]

3.2 动态算法

基于后端服务器状态进行调度适当调整

新请求将优先调度至当前负载较低的服务器

权重可以在haproxy运行时动态调整无需重启

3.2.1 roundrobin

不支持运行时利用socat进行权重的动态调整(只支持0和1,不支持其他值)
不支持端服务器慢启动
其后端主机数量没有限制,相当于LVS中的wrr
[慢启动是指服务器在刚刚启动时,不会把他应该承担的访问压力全部给它,而应该是先给一部分,当没问题后再给一部分]

3.2.2 leastconn

不支持运行时利用socat进行权重的动态调整(只支持0和1,不支持其他值)
不支持端服务器慢启动
其后端主机数量没有限制,相当于LVS中的wrr
[慢启动是指服务器在刚刚启动时,不会把他应该承担的访问压力全部给它,而应该是先给一部分,当没问题后再给一部分]

3.3 其他算法

3.3.1 source

源地址hash,基于用户源地址hash并将请求转发到后端服务器,后续同一个源地址请求将被转发至同一个后端web服务器。此方式当后端服务器数据量发生变化时,会导致很多用户的请求转发至新的后端服 务器,默认为静态方式,但是可以通过hash-type支持的选项更改这个算法一般是在不插入Cookie的TCP 模式下使用,也可给拒绝会话cookie的客户提供最好的会话粘性,适用于session会话保持但不支持 cookie和缓存的场景源地址有两种转发客户端请求到后端服务器的服务器选取计算方式,分别是取模法
和一致性hash

3.3.1.1 map-base 取模法

3.3.1.2 一致性hash

当服务器的总权重发生变化时,对调度结果影响是局部的,不会引起大的变动hash(o)mod n

该hash算法是动态的,支持使用socat等工具进行在线权重调整,支持慢启动

3.3.2 uri

3.3.3 url_param

3.3.4 hdr

3.3.5总结

四、Haproxy的高级功能配置

4.1基于cookie的会话保持

cookie value:为当前server指定cookie值,实现基于cookie的会话黏性,相对于基于 source 地址hash
调度算法对客户端的粒度更精准,但同时也加大了haproxy负载,目前此模式使用较少, 已经被session
共享服务器代替
不支持tcp mode,使用http mode

4.1.1配置示例

4.1.2验证

4.2Haproxy状态页

通过web界面,显示当前Haproxy的运行状态

启用状态页

登录状态页:

4.3IP传透

4.3.2四层IP穿透

未开启穿透的四层代理

在访问haproxy后在server1查看nginx日志

此时无法看到真实访问源地址

开启四层透传

在server1上对nginx进行配置

修改proxy

此时在server1上查看日志内容

4.4 ACL

是一种基于包过滤的访问控制技术

它可以根据设定的条件对经过服务器传输的数据包进行过滤(条件匹配)即对接收到的报文进行匹配和过滤,基于请求报文头部中的源地址、源端口、目标地址、目标端口、请求方法、URL、文件后缀等信息内容进行匹配并执行进一步操作,比如允许其通过或丢弃

4.5 自定义Haproxy

YOLOv8作物病害检测实战源码 这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。 立即下载

相关推荐

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

【Unity知识速递】第8期 IL2CPP 托管堆内存碎片与原生堆交互机制深度解析

在 IL2CPP 构建中,内存分布在三个独立区域:托管堆(Managed Heap)、C# 非托管内存(C# Unmanaged Memory)和原生堆(Native Heap)。多数开发者只关注托管堆的 GC 分配,但真正决定移动端 OOM 风险的,是托管堆碎片如何触发堆扩张、以及托管引用如何"拖住"原生对象不释放。理解三层内存的交互机制,是做中大型项目内存优化的第一道门槛。IL2CPP 的 GC 采用标记-清除(Mark-Sweep)算法,回收后释放的内存会变成"空洞"——这就是碎片。

crystal_WJT的博客 264

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

TF-M 安全与非安全交互

AN521 中,NS应用调用psa_generate_random()触发安全交互。NS侧组织iovec并调用psa_call,经Secure Gateway进入Secure世界。SPM检查内存权限与参数合法性后,通过SFN backend切换至Crypto分区执行服务,生成随机数并写回NS缓冲区。完成后返回NS,应用读取结果。整个过程由SPM协调,确保安全隔离与内存访问控制。

tyustli 231

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

从零搭建一个能收款的服装品牌站:建站、生图、p5.js 交互、支付宝 AI 付接入全流程

以一个服装品牌站「昼白 ZHOUBAI」为例,完整走一遍从六行需求到能收钱的全流程:建站、生成八款衣服十四张图、用 p5.js 做面料纹样与版型轮廓交互、接入支付宝 AI 付、挂三条服务端定时任务。重点讲清楚每一步怎么做、为什么这样做、有哪些坑,以及这套方案适合和不适合什么场景。

qq_25897071的博客 327

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

unity AR装配引导刚进入时交互操作

进入程序后,移动头时红色的模型会跟着移动,然后,把红色的模型移动至产品上,如果能正确匹配就会变为绿色。如果不能匹配,则不会变为绿色,但在10秒后会自动固定在一个位置。如果定位后位置不对,可通过语音“重新定位”或左侧的“重新定位按钮”重新定位。或者在位置调整好能过语音“完成定位”,即可以完成模型定位。(抓着不动变成 4 秒才锁),重新 Build 即可。然后如果位置不对,可以通过手势交互模型调整位置。当前效果:抓着模型不动时,静止锁定阈值 =程序中手的位置不变化时修改的位置。松手后回到 0.8s。

moonlightpeng的博客 162

从ADRV9002到ADRV9003:手把手教你移植FPGA驱动,避开那些官方没说的坑

本文详细介绍了从ADRV9002到ADRV9003的FPGA驱动移植实战指南,重点解析了两者在硬件架构上的关键差异,如通道配置和DPD功能的移除。通过提供完整的移植步骤、调试技巧和性能优化建议,帮助工程师避开官方文档未提及的常见陷阱,实现高效驱动开发。

weixin_28738397的博客 175

手把手教你构建轻量级CLIP模型:从理论到实践

本文手把手教你从零构建一个轻量级CLIP模型,深入解析其核心原理——对比学习,并提供完整的代码实践。通过精简的模型架构、数据准备和训练循环实现,帮助读者彻底理解多模态模型如何让图像与文本在共享空间中对齐,为学习更复杂的AI模型打下坚实基础。

weixin_29100927的博客 326

Nature正刊:智能纤维赋能可穿戴式交互

本文提出CAI共传播轴互连技术,实现单根纤维内集成5000+微型LED芯片与同轴触摸传感层,突破芯片互连短路、错位难题。基于米级长像素纤维,通过纬编织造出96×54分辨率织物显示界面(30fps,8bit全彩),支持多点触控、视频播放、蓝牙通信及多模态传感,兼具透气、可机洗、耐弯折等纺织品特性。系统集成双MCU架构与自适应显示功能,首次在织物上实现接近智能手机的丰富交互,为织物原生交互式可穿戴计算提供全新硬件范式。

weixin_44887311的博客 92

BUSCO评估基因组的完整性

因为数据库收集的时候找的就是在不同的物种间都是单拷贝的基因,所以说在评估的物种里面应该也是单拷贝的状态才对。基因组层面评估:先去基因组上预测这些基因,再去做评估,如果说给他是一个注释好的基因集,这个时候提供的是一个蛋白集合,它就直接是去进行同源搜索,再去评估,看BUSCO数据库里面的这些单拷贝基因有或者无;首先,tblastn也是同源搜索,同源搜索之后,去对转录本进行读码框预测,预测完的结果还是去进行hmmsearch的搜索(hmmsearch是做蛋白质结构域搜索的),最终拿到BUSCO评估结果。

qq_64400864的博客 2959

Android 开发入门实践(七):用 Compose 状态实现实时搜索、图标交互与页面恢复

本章通过点击计数器学习 Compose 状态机制,掌握 mutableStateOf 创建可观察状态、remember 保持状态在重组间存活,并理解状态提升与组件解耦。实践实时搜索功能时,结合 TextField 实现输入响应、空结果提示与清空操作,通过 rememberSaveable 解决屏幕旋转后状态恢复问题。关键认知:可观察状态驱动界面更新,而普通计算结果仅在重组中重新生成。纠错过程强化了对“状态”与“计算”本质区别的理解。

Easyhood的博客 222

物理学建模及仿真平台Chrono安装

Chrono是一个基于物理学的建模和仿真基础设施,它是在C++中实现的独立于平台的开源设计。一个projectchrono库可以嵌入到一个软件项目中,例如在可变形地形上运行的轮式和履带式车辆、机器人、机械电子系统、顺应性机构和流体固体相互作用现象。系统可以由刚性和柔性/顺应性部件组成,并带有约束、电机和接触;部件可以具有三维形状,以便进行碰撞检测。然而安装还是出现了一些问题,所以在此总结。已经装好visual studio。

Already8888的博客 6501

2023华为od机试真题【恢复数字序列】C++

2023华为od机试真题【恢复数字序列】C++ 对于一个连续正整数组成的序列,可以将其拼接成一个字符串,再将字符串里的部分字符打乱顺序。如序列8 9 10 11 12,拼接成的字符串为89101112,打乱一部分字符后得到90811211,原来的正整数10就被拆成了0和1。现给定一个按如上规则得到的打乱字符的字符串,请将其还原成连续正整数序列,并输出序列中最小的数字. 输入描述

MISAYAONE的博客 5729

WorkBuddy 实战:一句话需求 → 七屏可交互原型,户外徒步 App 的 AI 设计全流程

本文记录使用 WorkBuddy(基于大模型的 AI 辅助原型生成工作流)从零生成“户外徒步 App”七屏可交互原型的完整过程。围绕提示词约束、状态管理选型、路由联调与性能验证等实际开发环节,拆解如何将模糊需求转化为可运行代码。重点说明 AI 生成代码的常见不一致问题及人工介入的验证方法,提供一套可复用的 AI 原型落地流程。

2402_83344867的博客 494

【2024遥感应用组一等奖】基于风云四号卫星的小时级大气气溶胶和颗粒物监测

最后,比较AGRI观测反射率和查找表计算的反射率反演得到的1小时分辨率AOD数据。然后,使用广泛应用的MODIS DT和DB产品进行对比,图 5显示了它们逐像元尺度的对比,AGRI LaGA算法可以捕捉亚洲地区AOD高低值空间分布格局,比如南亚次大陆、中南半岛、塔克拉玛干沙漠和华北平原是AOD高值区域(平均AOD高于0.3),中国西北、中国南方、中国东北和韩国地区为AOD中值地区(平均AOD在0.2到0.3之间),北纬45度以上以及日本地区为AOD低值区域(平均AOD小于0.2),与全球平均AOD值接近。

JData_Engineer的博客 373

HarmonyOS PC 端适配实战:断点、分栏与键鼠交互

本文详解鸿蒙HarmonyOS在PC端的适配核心:以断点系统按窗口宽度(sm/md/lg)动态布局,结合GridRow与Navigation实现响应式分栏;重点强调键鼠交互(焦点、hover、右键、快捷键、滚轮)占七成工作量;通过交互模式抽象统一触屏与鼠标逻辑;强制声明最小窗口尺寸并自测小窗口场景;最终以“列表+详情”真实案例展示数据层一致、展示层双态的适配策略。

信息安全领域优质创作者|操作系统领域专家 213

五、MT8168 音频驱动之SPEAKER

本章主要讲解MT8168平台的内部SPEAKER驱动配置。分为HP接法和LINE OUT接法。2.1.3 audio_custom_exp.h设置。2.1.4 mixer_paths.xml设置。2.2.3 mixer_paths.xml设置。2.1.2 ProjectConfig 设置。2.2.2 ProjectConfig 设置。2.2.1 deconfig设置。2.1.1 DTS设置。......

Joon2020的博客 1664

【2026年华为暑期实习(AI)-6月3日-第一题- 选择题】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要: 本文探讨了深度学习与计算机科学中的多个关键概念和技术,包括CUDA双缓冲技术、神经网络训练问题、优化算法、概率模型、Transformer架构特性、量化技术、损失函数选择等。通过20道选择题和多项选择题,涵盖了梯度消失/爆炸、神经元死亡、牛顿迭代法、朴素贝叶斯分类、Adam优化器、KV Cache压缩等核心知识点。特别关注了大模型训练中的计算效率、数值稳定性问题,以及实际应用场景如客服Agent的记忆机制优化。题目设计既考察基础理论(如概率分布、指数分布特性),又结合前沿技术(如MoE架构、注意

m0_73659489的博客 81

第06章-交互与观察动作空间

本章突破传统回合制交互,从模态(语音、屏幕、传感器)与时机(异步事件驱动)两维扩展Agent能力。通过“唤醒、安全点、取消、抢占、快慢分离”五原语,实现跨尺度响应:从秒级事件到毫秒级机器人控制。以PineClaw为例,强调实时事件通道对关键任务的重要性;提出异步处理三策略——取消式、队列式、并行式,结合虚拟身份与隔离环境保障安全。核心观点:真实世界不等待,Agent需主动感知、灵活响应。

zalman123456的博客 313

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

从零搭建半导体设备上位机(九):拖拽与交互,Adorner、DragDrop 与晶圆拖放信息

拖拽与交互:Adorner、DragDrop 与晶圆拖放信息 这是「从零搭建半导体设备上位机」系列第9篇,也是界面骨架这批的最后一篇。晶圆从一个腔拖到另一个腔,看起来是个纯 UI 动作,实际牵着"能不能拖、能拖到哪、拖过去之后设备认不认"三层判断。 一次"拖过去没反应" 第一版拖拽上线那天,操作员把一片晶圆从 Loadlock 拖到腔体 A,松手,什么都没发生。 不是报错,不是卡住,是完全没反应—

samble的专栏 285

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

12 种高级 UI 交互效果及对应 AI 提示词:从按压回弹到底部抽屉的物理感教学

让 AI 做按钮只说“加个动效”,它只会给个普通缩放——高级 UI 交互的差别本质是“有没有物理感”:按压回弹、弹性开关、波纹跟随手指、液态滑块、卡片堆叠、底部抽屉,12 种交互都在模拟真实世界的力学。本文拆解每种交互的视觉特征、失败形态与一句话 AI 提示词,附 12 条提示词对照清单 + 一段可直接运行的 HTML/CSS Demo,帮你把“感觉不错”翻译成 AI 能听懂的具体指令。

郑恩赐,厦门工学院软件工程AI方向本科在读。专注AI全栈应用开发,熟练Vue3、Spring Boot、PyTorch等技术栈,正在探索多模态大模型应用。拥有多个全栈项目和AI应用开发经验,获国家级大创立项和发明专利,掘金优质作者榜第2名。 238

WorkBuddy怎么调用墨刀AI?用一段需求生成PRD、交互原型和应用

在检查原型时,最好逐个点击导航和关键按钮,确认页面能否到达、返回路径是否清楚、表单和空状态有没有遗漏,比如这个社区兴趣App还应检查发布内容后返回哪里、私信入口能否找到。如果发现问题,可以继续在同一任务中提出具体修改,例如“保留现有五个页面,只调整话题详情到发布页的跳转,并补充发布成功状态”。若目标是生成应用而非原型,就要在提示词里明确技术形式和功能边界,例如“做一个健身打卡的React应用,包含打卡记录、连续天数和日历视图,先使用本地模拟数据”,它也有。连接完成后,新建WorkBuddy任务,

m0_67717291的博客 163
上一篇: LVS负载均衡技术
下一篇: 高可用集群KEEPALIVED
陈璆鸣
博客等级 码龄3年 144粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值