1月更新!EasyOps® 28+新功能“狂飙”上线~

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情

2023节后,我们就要“搞事情”!

 一波新功能已上线,快看是不是你需要的!

持续升级优化全平台产品,

只为成为你数字化变革最值得信赖的合作伙伴!

优维EasyOps®全平台28+新功能来了!

↓↓↓

1、HyperInsight-超融合可观测平台

1) 全新日志采集-更易用的日志采集能力

HyperInsight原先支持了通过Rsyslog上报日志数据的日志采集方式。但Rsyslog的配置门槛较高,配置流程比较复杂并且文档难搜难读。

 为此,HyperInsight此次新增了全新的日志采集方式,通过Filebeat上报日志,并从日志信息中采集存储为指标。和Rsyslog的日志采集方式相比,Filebeat具有两大优点:一是Filebeat的配置简单,易维护;二是Filebeat完全开源免费。

Filebeat日志采集的方式具有三个特点:

●可调试Filebeat是否正常上报日志到Easyops平台

●日志解析和数据清洗做表单化配置,更易用

●支持自定义日志指标的采集&APM专用指标的采集

此次新增Filebeat的日志采集方式可在6.14发行版升级使用!

2)告警通知时间支持按日历模式发送-灵活配置告警通知

实际场景中,监控运维人员每天会接收到很多告警信息,对不同告警的通知时间,运维人员可能有不同诉求。例如,紧急的告警,希望每天可接收告警通知来及时处理,而对于不那么紧急的告警,则希望只在工作日接收对应的告警信息。

 但是,原来的告警通知设置是按周期的模式来设置的,即按周一周二...来设置告警通知。而实际上工作日和周一到周五是不对等的,比如法定节假日也会存在周一到周五的情况。那在这种情况下,需要额外去配置告警通知屏蔽的策略,操作起来比较麻烦。

为此,平台层面首先支持全新「工作日历」小产品,可消费统一的工作&节假日定义。具体工作日和节假日的配置方式和ITSM营业时间配置的方式是一样的。其次,「工作日历」小产品内置了2022~2023年度的国家法定节假日历,无需用户再去手动配置。最后,HyperInsight层面,告警通知规则支持切换周期模式和日历模式,日历模式下,用户可选择日历及具体通知时间段,帮助用户更灵活配置告警通知。

可在6.14发行版升级使用!

3)APM服务地图支持切换层次布局&3d拓扑优化

在微服务架构下,服务调用关系混乱,手动布局虽然灵活但配置麻烦。

 为了用户在配置时更便捷,对2D拓扑图进行优化,支持切换自动层次布局,无需用户再手动布局,且系统会默认记忆当前布局。同时,3D拓扑展示也做了进一步优化,按服务协议细分了服务的3D模型样式,让3D拓扑图展示的信息更丰富。可在6.14发行版升级使用!

4)APM服务总览支持批量关联服务

由于没有使用CMDB平台的用户,在初始化接入APM时,希望能快速关联业务下的服务数据。

 为了满足用户的需求,APM服务总览支持通过搜索服务名,批量关联业务和服务,同时支持「仅看未关联的服务」,操作更便捷。

可在6.14发行版升级使用!

2、CMDB-立体化资源管理平台

1)支持sampler批量安装/升级、卸载-界面化管理Sampler

过去,对Sampler进行升级的时候,是通过纯手动操作的,且存在需要对多台Agent的主机同时做Sampler升级的情况,而纯手动升级的模式导致升级效率比较低下且升级繁琐。

 为了提高效率,在agent管理小产品内增加了Sampler界面化部署/卸载能力。支持Sampler批量安装/升级/卸载,且界面化管理Sampler,具体具备以下四个特点:

●按Agent的维度查看和管理Sampler版本

●支持单个sampler/批量操作,包括部署和卸载Sampler

●Sampler的部署卸载历史操作可通过任务历史追踪和审计

●按Agent的维度统一控制Sampler权限

可在6.14发行版升级使用!

2)资源自动发现支持数据清理-服务、服务部署实例、阿里云资源

用户可通过多种手段去更新CMDB的资源信息,像自动化采集、Agent、手工维护等等方式,往往它们都会以一种追加的方式写入CMDB。然而,由于缺乏数据清理的机制,导致已下线的资源一直保存在CMDB系统里,从而会带来存储资源的占用与浪费,更重要的是会导致数据失活,降低CMDB的准确性。

 常见的自动清理场景有:服务部署实例、Container、Pod的实例清理、服务间调用关系的清理等。

此次,资源自动发现新增数据清理的能力,支持服务、服务部署实例、阿里云资源的清理机制。具体的清理机制,主要分为三个环节:

1. 【自动标记】资源自动发现会根据资源的变更差异、不同资源的存活检查等方式,将失活的数据自动标记为“待清理”的数据;

2. 【自动清理】针对“待清理”数据,不同的资源可按需配置自动清理的能力,即可实现资源的脏数据自动清理;

3. 【事后回滚】自动清理的数据提供清理历史清单,可进行事后审计和回滚。

后续会继续丰富资源自动发现的能力,将新增服务名、服务间的调用关系、路由策略、K8s资源的清理机制。

可在6.14发行版升级使用!

3)资源发现丰富负载均衡资源和路由策略-Nginx、HAproxy、LVS、ALB

此次版本升级丰富了负载均衡资源和路由策略的资源自动发现能力,覆盖Nginx、HAproxy、LVS、ALB等资源,截至目前,CMDB已累计支持88个资源的发现。

 微应用【资源自动发现】已加入发行版6.14

4)模型实例导入支持忽略唯一键的校验

在资源建设过程中,可能会存在资源配置信息不完善的情况,进行数据导入时则需要暂时忽略唯一键的校验。

 那在这种情况下,模型实例导入支持忽略唯一键的校验。用户在进行资源的实例导入时,可通过配置【无唯一键导入】来忽略唯一键的校验,用户即可导入多条属性重复的数据。

可在6.14发行版升级使用!

5)结构体数组的变更记录只展示有变更的数据-高效查看变更数据

多行结构体数组在进行编辑时,很难找到变更的具体内容。为此,我们将结构体数组的变更记录只展示有变更的数据,方便用户快速查看变更数据的具体情况。

 可在6.14发行版升级使用!

6)实例详情的结构体数组和关系列表支持搜索-快速找到目标数据

当用户去查看某个资源的详情中较为复杂的数据,比如在看磁盘信息时,发现某台机器信息特别多,用户很难查找到想要查看的数据情况。为此,我们对CMDB实例详情的结构数组和关系列表新增加了「搜索」的功能,用户可直接搜索快速找到目标数据查看。

 可在6.14发行版升级使用!

3、ITSM-IT服务管理平台

1)脚本库支持查看任务历史-提高脚本的任务历史查看效率

原先在ITSM脚本库中执行脚本时,脚本的任务历史、版本信息要去到工具库中的任务历史页面才能查看,用户的操作路径较长,无法在产品内形成闭环,体验不佳。

 为了用户操作更便捷,脚本库详情新增脚本任务历史、版本列表页面,用户可在ITSM脚本库查询该脚本相关的任务历史及版本信息,无需跳转至工具库进行查询,简化了操作步骤,缩短了操作路径。

可在6.14发行版升级使用!

2)支持一键撤销流程-发起人一键撤销流程

用户在发起流程时,往往会填错表单的信息,若误填信息发起后,往往会给后续节点审批人带来误导。当出现此场景时,平台不支持对流程支持一键撤销,就会出现错误的工单。

 为了防止错误工单的出现,支持服务发起人在流程任意节点对流转中的工单进行撤销,撤销后流程回到最初的节点,发起人可修改工单信息后再次提交,流程管理更加灵活、可控。

可在6.14发行版升级使用!

3)支持自定义优先级 -优先级管理更加灵活

在ITSM之前的优先级管理中,紧急程度和影响范围都内置了固定的优先级及等级,用户在实际使用中,会存在不同服务使用不同优先级的场景,而不是采取通用的优先级,例如有些服务只想保留高、中、低,而不想要有非常高、非常低时,平台不支持进行配置。

 此次版本升级后,ITSM支持自定义优先级,同时支持自定义的优先级被SLA协议引用,服务或任务可引用自定义优先级的SLA协议,从而实现服务的优先级灵活配置。

可在6.14发行版升级使用!

4) 支持指定节点进行工单转换-工单转换更加可控

原先在ITSM的流程中,用户可以在任意节点对工单进行转换,在实际使用场景中,往往需要工单流转到指定节点后才能判断工单是否需要转换,但是因为现在没做限制,工单转换操作又不可逆,所以就会存在操作失误的可能。

 为了工单转换更加可控,ITSM支持服务负责人在服务配置-工单转换中:指定节点进行工单转换。

可在6.14发行版升级使用!

5) 工单详情新增任务历史-高效查询工单有关的所有任务历史 便于快速排错

用户在发起工单后,会触发与该工单有关的脚本进行执行,例如:前置脚本、后置脚本、控件脚本、表单生命周期等,某个脚本执行出错时就会导致工单无法正常流转,而用户在排查脚本的任务历史时往往需要跳转出ITSM产品,去工具库-任务历史页面进行查询,操作路径长,且脚本的任务历史又较为分散,提升了排查难度。

 为了便于用户更快速排错,将工单有关的脚本任务历史进行聚合,提供统一入口进行查询,大大降低排错成本。

可在6.14发行版升级使用!

除了以上能力外,ITSM还发布了一些小优化,例如:

● 首页新增公告;

● 支持服务负责人在工单流转中有操作此工单的权限;

●工单详情:信息摘要版面重构、优化,支持按节点展示。

 可在6.14发行版升级使用!

4、DevOps-持续交付平台

1)程序包-编辑上传后文件支持以指定编码格式保存-更简单更自由的查看与保存配置文件

平台对于程序包内的文件, 如果是自行上传的文件, 那么文件在打开之前还是以上传时的编码格式存在,如:gb2312. 但是在打开了一个上传的gb2312格式文件后,若再次进行编辑保存,平台会默认将其保存成 utf-8格式。因此在下发到服务器上执行时,出现了报错的场景。

 为了更简单、更自由的查看与保存配置文件,在打开程序包内的文件时,支持以指定的编码格式打开该文件,并且会以所指定的编码格式来保存该文件。

可在6.14发行版升级使用!

2)程序包-配置模板新增“查看模板变量说明”-新增模板使用说明 降低理解门槛

原先程序包-配置模板模块可以将程序包中的配置文件解析为配置模板,但是因为缺乏引导,新手用户并不知道该模块的具体使用方法,以及模板变量支持的类型都有哪些,使用起来较为困惑,需要他人指导。

 为了降低用户的理解、使用门槛,故对此进行优化,程序包-配置模板新增“查看模板变量说明“,查看模板变量页面附有使用说明以及详细示例,以便用户更好的进行操作。

可在6.14发行版升级使用!

5、AutoOps-自动化运维平台

1)工具库支持以列表维度展示工具对象-提供丰富的巡检视图进行统计、分析

当前的工具库是以卡片的ui形式来陈列工具对象,由于卡片的空间有限,信息传达效率较低。

 为此,在保留原有卡片的ui基础上,新增了一个列表的展示方式,同时可以在列表上快捷操作,将工具对象标记为生产版本。

可在6.13发行版升级使用!

2)流程库任务历史支持以执行用户过滤-用户级别的历史数据过滤

流程库/工具库/部署编排/数据库变更的执行历史由于没有做权限上的划分,单一用户可以查看到全局的变更记录,缺少用户权限的划分在客户真实场景下是不被接受的。

 此次版本升级,支持已执行用户过滤,即以执行用户的视角来划分任务历史,普通角色用户只能查看到自己执行过的任务历史,而对系统管理员而言,可以看到全局的任务历史。

可在6.13发行版升级使用!

3)巡检自动化产品新增巡检概览-提供丰富的巡检视图进行统计、分析

原巡检自动化产品支持对多种套件进行日常的巡检,但是缺乏对巡检进行日常统计、展示,用户无法感知(每日、每周、每月)的巡检情况,从而无法判断巡检任务是否有异常,手工统计工作量大,效率低。

 为了丰富巡检视图,巡检自动化产品新增了巡检概览,支持按照每日、每周、每月统计巡检次数、巡检成功数、巡检失败数、巡检成功率等指标:

可在6.14发行版升级使用!

除了以上新增功能外,AutoOps还发布了一些小特性,例如:

●支持工具导入时进行版本比较;

● 支持定时任务列表按分类树状展示,提高检索效率;

●工具库修复无root编辑权限时可用root账号来调试的漏洞;

●支持工具库支持内置参数输出:执行开始时间、执行结束时间、执行成功列表、执行失败列表。

 可在6.14发行版升级使用!

2021-10-29 atcoder ABC157——B - Bingo B - Bingo 先标记,然后暴力判断,这样最清晰最好想。 #include<iostream> #include<algorithm> #include<cstring> using namespace std; typedef long long LL; int a[110][110],b[110]; int main() { for(int i=1;i<=3;i++) for(int j=1;j<=3;j++) cin>>a[i] 阅读详情

相关推荐

告别激活烦恼:Lattice Diamond 3.13 永久免费License申请与配置全攻略(Windows 64位)

本文详细介绍了Lattice Diamond 3.13永久免费License的申请与配置全流程,特别针对Windows 64位系统用户。从官网导航的隐藏路径到Host ID的获取方式,再到License文件的高级处理技巧和环境变量的深度配置,提供了全面的安装教程和疑难问题解决方案,帮助开发者彻底告别激活烦恼。

weixin_28736335的博客 429

EASYOPS系列|谨慎!勿让持续交付变成bug自动化发布

你的持续交付能力用得还好吗,比如频繁发布移动或云应用的特性增强?还是恰好相反,快速发布了带漏洞的版本? - Joel Shore 持续交付能让交付流程跑得更快,但持续交付本身并不能为发布质量打包票。国外基于Jenkins持续集成和持续交付平台的某技术提供商认为,如果发布质量没有...

chenlixing6131的博客 471

杰理的蓝牙芯片的key是什么?以及该如何添加key?杰理key文件原理

很多的工程师,在开发杰理蓝牙芯片的第一步就会有一个很深的疑惑,关于key的 1、什么是key文件? 2、Key文件是如何产生的? 3、为什么需要他key文件? 4、如何添加key文件? 5、以及实际开发中的一些报错该如何处理?

qyvhome的博客 4100

重磅!优维科技发布EasyOps7.0大版本

在企业加速数字化转型的过程中,技术架构的持续变化带来了架构治理的诸多难题,包括繁重的架构梳理任务、频繁的架构变动、难以监管的架构规范以及缺乏透明度的架构视图等问题。伴随着可观测性产品的快速迭代,优维技术团队构建了更加精细与完整的可观测能力,并推出场景更丰富的「全面可观测」产品及服务,覆盖架构可观测、故障可观测、变更可观测、用户可观测、应用服务可观测、资源可观测、运维状态可观测等七大不同场景的可观测产品能力,帮助企业提供更丰富、更完整的可观测服务,保障系统的可靠性与稳定性,并节约运维成本。

EasyOps_DevOps的博客 921

CondaHTTPError: HTTP 404 NOT FOUND for url

用conda创建新环境时出现问题了。

qq_40713201的博客 1270

Windows 11 的C盘User(用户)文件夹下的用户文件夹名称的修改

背景介绍:由于系统重装导致Windows 11的系统用户名与C盘User(用户)文件夹下的用户名文件夹(公用文件夹旁边的文件夹)出现名称不一致,事例中系统用户名命名为“寂萧”,User(用户)文件夹下的文件夹名称却是“77555”。【QQ邮箱前五位真的真的看着很别扭】注:改名有风险,三思而后行。User(用户)文件夹下的用户名是中文在某些软件的应用场景下产生不便,导致很多软件莫名其妙报错,甚至无法使用,笔者不建议修改为中文名。//和笔者一样的强迫症除外//

2302_79084172的博客 10万+

资源分享|阿里云盘

随着人们所制造的数字资产越来越庞大,对存储服务的依赖在不断增加。作为一名合格的“冲浪少年”,相信每一个位“冲浪少年”都有一个自己的网盘工具。毕竟无论是存储文档,还是下载学习资料,网盘已经成为当代青年人手必备的工具了。 自从网盘大战后,百度网盘一家独大,占领了网盘界的半壁江山。不付费,5G再强,在百度面前也得成渣渣,用着5G的网,体验着2G的网速。 网盘使用上的痛点相信大家都深有体会,难道就没有一个不限速、不限流量、也不限上传文件大小的网盘吗? ...

共享编程知识 6154

基于OpenAI Agents构建多智能体工作流:从原理到实战

多智能体系统(Multi-Agent System)是人工智能领域的重要分支,它通过多个智能体(Agent)的协作与交互,解决单一智能体难以处理的复杂任务。其核心原理在于将任务分解、分配与协调,每个智能体具备特定能力,通过通信机制实现信息共享与决策协同。在工程实践中,多智能体框架的价值在于提升任务处理效率、增强系统鲁棒性,并支持模块化开发。典型的应用场景包括自动化工作流编排、复杂问题求解以及人机协同交互。本文以OpenAI Agents SDK为例,深入探讨如何利用其提供的智能体(Agent)、会话(Ses

weixin_28725959的博客 606

2020-04-10

分享下载小技巧 pandown+idmidm:可以识别下载网页上没有下载按钮的音频视频压缩包等,下载速度快pandown:百度云盘第三方下载软件,相当于VIP,但云盘识别到下载内容超过10G(具体忘了,好像是这个)会进行限流,60KB/s左右参考链接:#优快云# {url:https%3A//www.urlshare.cn/umirror_url_check?utm_source=app&amp...

weixin_42095460的博客 5115

别再到处找教程了!Windows下用FFmpeg+Mediamtx+VLC搭建本地RTSP流媒体服务器,保姆级配置流程

本文详细介绍了在Windows系统下使用FFmpeg、Mediamtx和VLC搭建本地RTSP流媒体服务器的完整流程。从环境准备到核心配置,再到推流和拉流的实战技巧,提供了保姆级的避坑指南和优化建议,帮助开发者快速实现稳定的流媒体服务部署。

weixin_42614269的博客 213

C51:PWM+舵机角度控制

PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%.脉冲宽度调制通过占空比编码模拟信号一个周期内,高电平占据时长的百分比如下图所示,最便宜的舵机sg90,常用三根或者四根接线,黄色为PWM信号控制。

qq_73379310的博客 3389

对话阿里云致凡:社会视频化“狂飙”,倒逼视频云技术加速迭代

以技术驱动创新,以芯力量拥抱数智未来。平头哥《芯事》访谈对话科技创新者、引领者,探索创芯之路,共建硬核算力,赋能科技创新。本期《芯事》人物——致凡,阿里云视频云技术团队负责人。

云布道师 940

YOLOv13改进策略【Head】| 引入RT-DETR中的RTDETRDecoder,替换检测头

本文记录的是基于RTDETRDecoder模块的YOLOv13目标检测改进方法研究。RT-DETR的模块通过,能为解码器提供高质量的初始,从而。相比v13原始的检测头,RT-DETR能,替换后能够更好的提高模型性能。

Limiiiing的博客 434

10月更新!又一波新功能上线,升级后的EasyOps®简直神了

我们在做资源发现时,不仅做实例的发现,同时也做了资源间的关系、资源与服务的关系、服务间调用关系,从而完成整个服务部署架构拓扑的构造。优化后,触发器允许多选监听事件触发同一个动作,大大减少了配置工作量。,用户选择该类型后,平台可以将编译的增量文件进行打包/上传到制品库,同时制品也会保留原先上传的版本信息,进一步完善了成upload_artifact插件能力,丰富了客户的使用场景。比如,不同的企业客户对资源的理解或定义不同,存在定制化建模的需求,从而带来海量的建模工作量,陷入了人力投入大、耗时长的泥潭中。

EasyOps_DevOps的博客 564

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 295

深度学习工具包 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")

信创环境下PageOffice文档控件适配与实践

信创适配做到文档控件这一层,拼的已经不是"有没有国产版本",而是同一个功能在两类终端上是否真的等价。等价的标准很具体:同一次点击能得到同样的结果,同一份公文能得到同样的版式,同一个项目不需要维护两套代码。这背后是三件并不轻松的工作:服务端用一套接口同时支撑两类终端,客户端把两种系统与四种芯片的安装包分发清楚,文档内核层由产品侧跟着 WPS 的版本走。浏览器这一层的压力,则被收进了产品自己的窗口里——升级节奏由产品掌握,不再交给运气。

zi_wu_xian的专栏 326

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

第三篇 第 6 课

前置:第三篇第 1 课(stdx 引入),第二篇第 1 课(std.regex)。环境:仓颉 SDK 1.2.0。本文所有代码与输出均逐行实测。

weixin_41618057的博客 514

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 351

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 532

Java 集合容器高频面试题全解:HashMap 树化阈值、1.7 死循环与 ConcurrentHashMap 演进(2026 招聘 JD 真题复盘)

HashMap 树化阈值 8 的泊松分布依据、退化阈值 6 的防抖设计、JDK 1.7 头插成环死循环的排查与修复、1.8 尾插后为何仍线程不安全、ConcurrentHashMap 放弃分段锁的原因与 ForwardingNode 协作扩容、computeIfAbsent 死锁陷阱、大集合找重复的场景题选型,附三层追问链自测。题目来源为 38 期公开招聘 JD 样本与字节、拼多多、建行、美团、快手公开面经。

蒙眼过河 418

spdlog 同步日志库使用详解

spdlog是一个轻量级 C++ 日志库,支持同步日志、异步日志、多线程日志、日志文件轮转和自定义日志格式。对于嵌入式 Linux 应用开发,我建议先使用。它可以帮我们完成:日志级别过滤。时间戳和线程 ID 输出。日志格式化。终端和文件输出。多线程安全写入。日志文件按大小或时间轮转。我们不需要自己实现互斥锁、文件写入、日志格式化和轮转等底层功能。

zengjiajun2006的博客 1118

JavaSE通关手册:数据类型与变量

代码无需额外处理,编译时编译器自动完成转换。

xys_678的博客 207

Java 多态 学习笔记

多态是面向对象编程的重要特性,指同一操作作用于不同对象时产生不同行为。其核心在于“父类引用指向子类对象”,结合方法重写实现运行时动态绑定。多态使代码更灵活、可扩展,如用Person p = new Student();统一处理各类人员注册,无需修改调用逻辑。但多态无法直接调用子类特有方法,需通过instanceof判断并强制转换。编译时看左边(类型),运行时看右边(实际对象),实现解耦与维护便利。

AA_AA114514的博客 367

IDEA 简介:从零认识 IntelliJ IDEA

IDEA 全称,是由 JetBrains 公司开发的一款主流 Java 集成开发环境(IDE)。它集代码编辑、编译、调试、测试、版本控制、构建管理等功能于一体,被大量 Java 开发者视为日常开发的首选工具。所谓 IDE(Integrated Development Environment,集成开发环境),就是把写代码所需的各类工具整合到同一个界面中。相比只用文本编辑器加命令行编译,IDE 能显著减少重复操作,让开发者把精力集中在业务逻辑上。

ztI10的博客 173

Java实现批量线段相交检测(跨积判定+扫描线优化与踩坑复盘)

【代码】Java实现批量线段相交检测(跨积判定+扫描线优化与踩坑复盘)

m0_64476639的博客 338

c++ explicit关键字详解

explicit。

拒绝AI文,努力在AI时代写出感动人心的好文章 151
上一篇: 优维科技入选“投资家网2022年企业服务领域创新企业Top30”榜单
下一篇: 优维低代码:History 会话历史
优维科技EasyOps
博客等级 码龄5年 1483粉丝 395原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值