GenUI SDK 生成式UI:六大开发特性详解,适配多种业务场景

AI——修改UI的SKILL 本技能用于RYB_GCP_SETTLEMENT_V2医疗智能柜项目Android端UI美化,基于XML与Material设计规范,严格遵循“只改UI、不碰逻辑”原则。统一使用lib_ui中定义的设计令牌(如主色#467DE4、圆角12dp卡片区等),逐模块改造布局样式,确保字号(20–36sp)、资源引用及视图ID不变。每次仅改一两个模块,先输出方案待确认,再编译验证(需JDK 11)。已完第一批,第二批待确认,其余模块按相同规范推进。 阅读详情

本文由云软件体验技术团队岑灌铭原创。

随着大语言模型快速迭代,LLM 已具备强大的自然语言理解与结构化内容生成能力。而如何高效渲染 AI 生成内容、快速打造美观交互的动态界面,已然成为 AI 应用规模化落地的核心痛点。

生成式 UI(Generative UI) 顺势成为破解该难题的核心技术方向。OpenTiny GenUI SDK 是 OpenTiny 团队基于生成式 UI 理念倾力打造的开源开发方案(以下简称GenUI SDK),具备完备的前后端一体化集成能力。

无论是从零快速搭建 AI 对话类应用,还是为现有业务系统无缝嵌入动态生成式界面能力,GenUI SDK 均可实现开箱即用、轻量化接入与高灵活扩展,大幅降低 AI 可视化应用的开发门槛。

了解更多GenUI SDK详情:

本文将深度拆解 GenUI SDK 六大核心开发特性,帮助你全面了解这一革命式的 AI 应用开发工具。

一、现有 AI 生态兼容:支持对接主流 LLM 与工具生态

遵循 OpenAI 格式

GenUI SDK 遵循 OpenAI Chat Completions API 接口规范,可无缝对接 OpenAI、DeepSeek等主流大模型服务。若你的项目已具备成熟的 Agent 架构与工程业务逻辑,且原有体系兼容 OpenAI 协议,接入 GenUI SDK 时可保留现有逻辑,无需重构改造。
在这里插入图片描述

服务端包 @opentiny/genui-sdk-server 提供开箱即用的 Chat Completions 能力,支持流式返回、结构化 JSON Schema 输出,让模型生成的内容能够实时、流式地渲染 UI界面。

支持 MCP 服务接入

MCP(Model Context Protocol) 是连接 AI 与外部工具、数据源的重要协议。GenUI SDK 支持 MCP 服务接入,可轻松连接丰富的工具生态。

你可以将业务系统中已有的 MCPServer 接入到生成式 UI 中, 接入 MCP 后,当模型在调用工具时缺少必要参数,GenUI SDK 能够自动生成交互式 UI 来收集所需信息,实现工具调用 + 参数收集的一体化体验。企业内部系统工具、第三方 API,自定义工具甚至是前端页面,都可以通过简单改造,成为 MCPServer 与 GenUI 深度集成。

以下是12306mcp服务中查票工具的要求参数:
在这里插入图片描述

在没有接入生成式UI能力之前,当查询车票缺少参数,大模型会返回文本,要求补充参数。
在这里插入图片描述

以下是集成了 MCP Server 的 运行效果(视频经加速处理);同样是查票场景,接入了生成式UI后,大模型直接生成了表单继续信息收集。填写完成后,点击查询按钮即可触发查询。
在这里插入图片描述

二、定制主题:适配不同产品的视觉风格

内置主题切换

GenUI SDK 内置多种主题模式,满足不同场景的视觉需求:

  • light:浅色主题,适合日间使用
  • dark:深色主题,护眼且适合夜间场景
  • lite:清新主题,提供更柔和的视觉体验
  • auto:跟随系统偏好自动切换light和dark模式

通过 GenuiConfigProvider 的 theme 属性即可一键切换,无需额外配置。
演练场中可以体验及时切换效果:
在这里插入图片描述

完全自定义主题样式

除了内置主题,GenUI SDK 支持基于 CSS 变量 的深度定制。你可以通过覆盖 TinyRobot 及物料组件库提供的 Token 变量,实现品牌级主题定制:

  • 自定义主色、圆角、间距等设计 Token
  • 调整按钮、输入框等组件的视觉风格
  • 通过 id 属性创建作用域,实现多主题并存

无论是企业级产品的品牌规范,还是面向特定用户群体的视觉偏好,GenUI SDK 都能灵活适配。
以下是自定义的一个紫色主题:
在这里插入图片描述

三、自定义组件:扩展生成式 UI 的组件库

扩展业务组件

使用GenuiChat组件,通过 customComponents 配置,你可以将自有业务组件纳入生成式 UI 体系:

  • 传入组件的 Schema 定义(属性、类型、描述),让模型理解如何正确使用
  • 传入组件的 引用(ref) ,实现实际组件渲染

例如,在特性一中生成的商品卡片,大模型每次输出难免存在细微差异,视觉风格也可能与业务系统不完全统一。为实现更一致的体验,你可以预先注册自定义商品卡片组件,结合 MCP 工具,让 AI 在响应用户商品查询时,自动生成包含价格、商品图、购买按钮等完整信息的规范卡片界面。通过自定义组件,可让生成的 UI 高度贴合业务设计规范与品牌风格。

以下是电商系统中,接入了自定义组件前后的效果对比。

接入前:
在这里插入图片描述

接入后:
在这里插入图片描述

同理,对于 User 这类结构复杂、内部逻辑繁重但外部参数较少的特殊 UI 组件,也可将其封装为自定义组件提供给 AI 使用,进一步提升系统整体体验与专业性。

四、自定义交互:满足业务侧的个性化需求

灵活配置交互行为

GenUI SDK 支持通过 customActions 配置自定义交互行为。每个 Action 包含:

  • name:动作名称,供 AI 在 Schema 中通过 this.callAction(name, params) 调用
  • description:动作描述,帮助模型理解何时使用
  • parameters:参数定义(JSON Schema)
  • execute:前端执行函数

典型应用场景

  • 跳转新页面:用户点击「查看详情」时打开新窗口
  • 下载附件:生成导出按钮,触发文件下载
  • 拉取数据:根据用户选择调用后端接口刷新内容
  • 提交表单:将表单数据提交至指定 API
  • 多轮对话:内置 continueChat Action,支持用户与生成 UI 的持续交互

通过自定义交互能力,AI 生成的界面不再是单纯的 “只读展示”,而是可以直接执行真实业务操作,完美满足复杂场景下的人机协同需求。

例如在电商系统中,可配置加入购物车等自定义交互行为,结合 MCP 联动能力,让 AI 界面与业务系统深度打通,实现真正智能化的业务交互。
在这里插入图片描述

五、多技术栈支持:融入现有项目的技术栈

内置 Vue 与 Angular 渲染器

GenUI SDK 内置 Vue 与 Angular 双框架渲染器:

  • @opentiny/genui-sdk-vue:基于 Vue 3 的前端组件与渲染器,集成 GenuiChat、GenuiRenderer、GenuiConfigProvider 等组件,开箱即用
  • @opentiny/genui-sdk-angular:基于 Angular 的渲染器,支持在 Angular 应用中集成生成式 UI 能力

两个渲染器使用相同的 Schema 协议,确保跨框架的兼容性。同一份 Schema 可在不同技术栈间无缝迁移,后续我们将会计划支持更多的技术栈,敬请期待~

以下分别是使用 TinyUI (angular组件库)和TinyVue生成的登录表单:

TinyUI:
在这里插入图片描述

TinyVue:
在这里插入图片描述

六、示例与片段:提升生成界面的质量

自定义片段(customSnippets)

customSnippets 提供常用的组件组合模式,如标准表单结构、列表+卡片布局等。这些片段作为模板注入到模型的上下文中,帮助模型快速复用成熟的 UI 模式,减少低质量输出。

示例与片段的结合,能够助力构建更加优秀的 UI 界面,满足多样化的视觉偏好与业务需求。

自定义示例(customExamples)

通过 customExamples 配置,你可以向模型提供业务最佳实践示例。每个示例包含:

  • name:示例名称
  • description:示例说明
  • schema:完整的组件使用 Schema

模型会参考这些示例,生成更符合业务规范的界面。例如,为数据可视化场景配置示例,可显著提升生成质量。

你可以自定义数据看板的风格,为看板搭配好布局与配色,那么大模型在按需生成看板时,会参考你的布局与配色,为你生成个性化的数据看板:
在这里插入图片描述

组件包一览

包名描述
@opentiny/genui-sdk-server集成生成式 UI 能力的后台服务,配置简单,启动快速。支持自定义组件、自定义操作等能力
@opentiny/genui-sdk-vue基于 Vue 的前端组件与渲染器,可用于快速构建生成式 UI Web 应用,同时拥有强大的定制能力
@opentiny/genui-sdk-angular基于 Angular 的渲染器,支持在 Angular 应用中集成生成式 UI 能力

立即体验

结语

GenUI SDK 在设计上兼顾了开箱即用与深度定制,既能让开发者快速搭建可落地的 AI 应用,又能在组件、交互、主题、技术栈等维度灵活扩展。欢迎对生成式 UI 感兴趣的技术爱好者体验使用 GenUI SDK。
GenUI SDK 现已开源,采用 MIT 协议。 欢迎 Star、Fork,参与贡献,与 OpenTiny 一起推动生成式 UI 技术的发展。

关于 OpenTiny NEXT

OpenTiny NEXT 是一套企业智能前端开发解决方案,以生成式 UI 和 WebMCP 两大核心技术为基础,对现有传统的 TinyVue 组件库、TinyEngine 低代码引擎等产品进行智能化升级,构建出面向 Agent 应用的前端 NEXT-SDKs、AI Extension、TinyRobot智能助手、GenUI等新产品,实现AI理解用户意图自主完成任务,加速企业应用的智能化改造。

欢迎加入 OpenTiny 开源社区。添加微信小助手:opentiny-official 一起参与交流前端技术~
OpenTiny 官网:https://opentiny.design
GenUI SDK 代码仓库:https://github.com/opentiny/genui-sdk (欢迎star ⭐)

如果你也想要共建,可以进入代码仓库,找到 good first issue标签,一起参与开源贡献~如果你有任何问题,欢迎在评论区留言交流!

【鸿蒙专题与实战】测试体系:单元测试、组件测试与 UI 测试 本文系统讲解鸿蒙开发中的三层测试实践:底层单元测试(用Hypium框架,优先覆盖纯函数、边界与异常)、中层ViewModel逻辑、顶层仅测3-5条关键UI路径。强调测试应“越往下写得越多”,因单元测试快且成本低,而UI测试慢易出错。通过实例说明断言拆分提升定位效率,结合覆盖率报告(hvigorwtest --coverage)发现盲区,核心是“用覆盖率找漏测,而非追求数字”。附五步落地清单:建测试文件、按优先级补用例、精简UI测试、生成报告、定位未覆盖行。下一篇将开启实战项目:从需求到上架全流程。 阅读详情

相关推荐

【鸿蒙专题与实战】服务卡片开发:桌面上的「信息窗口」

本文详解鸿蒙服务卡片开发,从独立运行体系、配置文件form_config.json到UI构建与数据刷新机制。通过实现“今日待办”卡片,展示其尺寸声明、静态布局及主动/被动更新策略。强调卡片限制:不可滚动、禁用音视频与网络图片,仅支持onClick跳转。下篇将聚焦音视频开发,持续更新中,欢迎留言互动。

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

在现有App里嵌入一个AI协作者

生成式 UI 的真正挑战,从来不是技术能不能实现,而是能否在真实业务场景中创造可衡量的价值。无论是提升客服效率、缩短交易路径,还是降低用户学习成本,最终都要回归到“是否解决了问题”。

speedoooo的博客 1067

COMSOL电磁仿真案例——感应线圈

COMSOL电磁建模仿真案例——感应线圈

冲击10w 6万+

AG-UI:让 AI 走出聊天框的“界面革命”

在 AG-UI 出现之前,如果你想把 AI 接入 App,程序员需要费劲地把 AI 的文字输出手动“翻译”成网页上的按钮。他不再躲在对话框后面,而是直接走进你的工作流,伸手接过了那把名为“UI”的钥匙。UI 不再是挡在你和功能之间的那层“膜”,而是变成了一种随用随取的资源。它不管后端用的是什么模型,前端用的是什么设备,只要接上这根管道,AI 就能从一个后台的“思考者”,变成前台的“协作者”。这种交流永远被困在一个小小的“聊天框”里,就像你雇佣了一个超级天才助手,但他被关在隔壁的小黑屋里,只能通过门缝给你。

qq_25624705的博客 1112

zemax混合式非序列模拟

注意不要点击左侧的非序列模式,那个时纯粹的非序列,会清除序列模式的数据。第2、4、6透镜材质为空气,是为了让光线进入到多重透镜内部。这时普通的优化方式会失败。平行光束经过多焦透镜时,会汇聚在不同焦距处。所以还需要控制能量的大小,进行优化。接下来用非序列模式设计一个多焦透镜。像面的孔径为圆形通光孔:0-1.2。透镜不同位置处有不同的聚焦位置。透镜的z轴位置相同,重合。

fendoudecheng的博客 3067

SAP FICO - 外币交易实战:汇率类型配置与货币换算率管理

月底关账前的外币评估就像财务人的"期末考",OB59配置就是你的备考方案。最低值原则(Lowest value principle)最保守。它会比较原始汇率与评估日汇率,取不利方向确认损失。适合风险厌恶型企业,我在制造业客户中应用最多。重估法(Revalue only)更反映市场现状。无论盈亏都按最新汇率调整,适合交易性金融资产处理。有个基金公司客户就靠这个方法及时反映了外汇波动收益。最小差异金额(Minimum difference)是防骚扰设置。

weixin_42524708的博客 358

Flutter 官方 LLM 动态 UI 库 flutter_genui 发布,让 App UI 自己生成 UI

所以可以看到,genui 的核心是利用 AI 大模型的 UI 组织能力,让它通过用户的描述和已有的控件目录,动态渲染和生成所需的 UI 控件。对象,它本质上是一个 JSON 结构,JSON 作为纯文本数据其实是可以保存的,比如我们对这部分数据进行拦截缓存,并在启动时加载渲染,当然,它并不是一个完全 Free 的动态 UI 项目,虽然看起来它是动态的,甚至可以用来做热更新,但是实际上也是存在限制条件。另外,在前面我们说过,AI 返回的是一个结构化的 JSON 数据,而对于 genui 来说,他底层会有一个。

恋猫de小郭的博客 3844

《UE4游戏开发》之 《音效系统的实现》

音效系统需要负责管理什么事情: 1.1 确定声音控制的分类:如背景音乐、技能音效、界面音效、角色配音等,不同游戏对声音有不同的分类 1.2 控制每个分类的声音的开启与关闭,以及调节每个分类声音的大小 解决如何分类: 2.1 首先需要知道ue4为声音分类提供了什么:SoundClass通常需要一个根分类【SC_RPG_Master】,便于总体控制音效,以及指定引擎默认启动的音效 打开SoundClass资产【SC_RPG_Master】,对根控制的设置,将逐级传递并按比例进行设置,以此达到控制一类声音的目的.

qq_21919621的博客 2126

GenUI SDK 生成式UI 增强大模型显示与交互效果

OpenTiny团队推出的GenUISDK是基于生成式UI理念的前端解决方案,支持Vue和Angular双框架渲染,提供完整的前后端集成能力。该SDK内置组件库、交互行为和主题样式定制功能,可快速构建AI对话应用或在现有系统中嵌入智能UI。核心技术包括生成式UI和WebMCP,能对传统组件库和低代码引擎进行智能化升级,支持开发智能助手等AI应用,助力企业实现业务智能化。SDK提供模块化功能包,包括对话组件、渲染器、主题配置等,满足不同场景需求。详见OpenTiny开源项目。

ejinxian的专栏 243

Linux 服务器上部署 OpenClaw完整教程

2. 全局安装 OpenClaw 3. 初始化配置 配置模型提供商 方式一:使用配置命令(推荐) 方式二:直接编辑配置文件 在 部分添加: 配置多个模型提供商 如果你使用 Antigravity 本地代理,可以同时配置多个模型: 配置飞书集成 1. 创建飞书应用 访问 飞书开放平台 创建企业自建应用 记录 App ID 和 App Secret 2. 配置应用权限 在飞书开放平台,为应用添加以下权限:重要: 必须使用 长连接(WebSocket) 模式,不要使用 HTTP 回调!在飞书开放

Maynor的博客 5249

振动分析-46-设备振动监测和故障诊断能力提升需要理解和掌握的知识体系

提升振动分析能力对于确保机械设备的高效运行和预防故障至关重要。

qq_20466211的博客 664

告别“画界面”:一文读懂 GenUI 生成式 UI 技术与生态

GenUI(生成式 UI)是一种创新的人机交互范式。由 AI 模型基于用户提示与上下文,动态生成完整可交互界面及内容的技术。如果用大白话来说,以前的软件界面是**“静态预制菜”——开发者做好什么,用户就只能吃什么;而 GenUI 则是“AI 私人定制小灶”**——你用自然语言说出需求,AI 瞬间为你“炒”出一个完全符合你当下需求的专属界面。它不仅能生成图文,还能直接“画”出表单、按钮、图表、卡片等各种交互组件。

软件行业技术文化交流。 2191

在ARM平台上使用Anbox和LXC进行ARM开发调试

在ARM平台上使用Anbox和LXC进行ARM开发调试是一种强大的工具组合。通过安装和配置Anbox和LXC,以及在LXC容器中运行ARM应用程序,开发人员可以方便地进行ARM开发和调试。LXC(Linux容器)是一种轻量级虚拟化技术,它提供了一种在单个主机上运行多个独立的Linux容器的方法。我们将讨论安装和配置Anbox和LXC,以及如何在容器中运行ARM应用程序。通过上述步骤,你现在可以在LXC容器中运行ARM应用程序,并使用Anbox在ARM平台上进行开发和调试。步骤2:启动LXC容器。

KwmGroovy的博客 735

GenUI SDK 生成式UI六大开发特性详解:TaoToken 统一 Key 接入多业务场景配置指南

GenUI SDK 生成式UI六大开发特性落地时,多工具 Key 管理易翻车。本文给出 settings.json 与 config.toml 骨架,把 Cline、CC Switch 等业务场景凭证统一收口到 TaoToken,换模型只改一处。附 curl 连通性验证与 401/404 排查,配置详见 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 。

weixin_35756690的博客 11

第五章:转矩脉动的成因与抑制技术:从根源到解决方案

本文摘要: 转矩脉动是电机运行中的关键问题,涉及电磁、机械和控制三大因素。电磁因素包括谐波、齿槽转矩和磁饱和;机械因素涵盖动平衡和轴承缺陷;控制因素涉及测量误差和死区效应。解决方案采用多层面优化:硬件上通过斜极设计和死区补偿(提供算法代码)降低脉动70%;控制上采用扰动观测器和谐振控制器进行动态抑制;针对齿槽转矩开发离线学习+在线查表补偿方案。测试环节建立振动噪声量化评价体系,包括加速度计测量和A计权声学评估。最终形成从设计到控制的系统化抑制策略,显著提升电机静音性、平顺性和寿命。

汽车软件开发 339

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

生成式 UI 藏大招!看似露营案例,实则电商集成 GenUI SDK 干货

要将 MCP 工具能力接入 AI 导购助手,需通过自定义 fetch 方法,处理大模型的工具调用请求、多轮交互及结果流式返回逻辑,确保工具调用过程流畅、符合电商业务场景。在目录下新建文件,编写自定义 fetch 逻辑。核心功能:自定义 fetch 方法,处理大模型工具调用、多轮交互及流式返回,对接 MCP 工具与 AI 助手baseURL?index?: numberid?

OpenTiny的博客 505

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

# WPF ComboBox 控件详解与使用 —WPF 中的控件(7)--下拉框选项列表控件( ComboBox)

ComboBox`(下拉框选项列表)是 WPF 中最常用的选择类控件之一,它在有限空间内提供下拉选项列表,支持**单选、可编辑输入、数据绑定、自定义项外观**等核心能力,继承自 `System.Windows.Controls.Primitives.Selector`。 本文将从基础属性、核心事件、基础用法、数据绑定、自定义模板、高级定制到最佳实践,逐一带代码注解进行讲解。

yunmaowu0917的博客 159

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

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

从零搭建半导体设备上位机(五):三套 UI 库共存,HandyControl、MaterialDesign、Wu.Wpf 的样式基线

三套 UI 库共存:HandyControl、MaterialDesign、Wu.Wpf 的样式基线 这是「从零搭建半导体设备上位机」系列第5篇。一个 WPF 应用里同时装了 HandyControl、MaterialDesignThemes、Wu.Wpf 三套控件库。这篇讲它们为什么会打架、打架的具体机制是什么,以及怎么建立一套"谁也别想偷偷改我外观"的样式基线。 一个下拉框,白底白字 界面做完

samble的专栏 472

兰亭妙微ui设计公司分享移动端UI设计:手机UI动效怎样从漂亮展示走向可讨论的原型

移动端UI动效设计需超越“视觉好看”,聚焦用户理解与交互逻辑。通过卡片展开、手势响应等动效,强化页面间内容连续性,保留关键视觉线索。设计应明确动效触发条件、结束状态及中途打断处理,结合静态图层与动态原型并行展示,提升评审效率。强调组件一致性、真实内容测试与清晰任务引导,让动效成为可推敲的协作工具,而非仅作演示素材。

lanlanwork12的博客 197

BLG大战T1导致应用大规模启动

2026年11月9日,BLG对战T1赛事结束后4小时,因iOS灵动岛功能特性引发大规模应用后台启动。赛事期间用户开启灵动岛,赛后系统推送结束消息,但锁屏UI延迟4小时集中移除,触发大量客户端后台唤醒,导致登录态续期、设备指纹等服务告警。经排查,问题仅限iOS端,根源为灵动岛默认4小时后移除锁屏界面时自动唤醒应用。优化措施包括:临时扩容、推送打散(多通道串行+时间错峰)、客户端识别并保护后端请求,有效缓解压力。

weixin_42448366的博客 196

K210+STM32+LVGL:手搓边缘AI智能安防监控网关

在传统的物联网或嵌入式毕设中,“智能安防”往往沦为“温湿度+蜂鸣器”的简单堆砌。由于单片机(如STM32)算力有限,无法在本地运行复杂的视觉AI模型,导致很多项目只能在云端处理图像,带来高延迟和隐私风险。本文将分享一个真正的边缘计算安防网关项目。我们采用“K210视觉协处理 + STM32F407主控 + LVGL高颜值UI”的分布式架构,完美解决了单芯片算力不足的痛点。项目不仅实现了明火与陌生人脸识别,还加入了多源传感器融合、5秒智能防抖、以及硬件与UI的双向闭环控制,是一套工业级标准的开源方案。

195

2026 苹果审核 4.3 (a) 被拒全解析|Guideline 4.3a spam 马甲包拒审原因 + 避坑方案

前言 最近很多开发者反馈,提交 App 直接秒拒,返回 Guideline 4.3 (a) - Design - Spam。很多人一脸懵:代码是自己写的、UI 也改了,为什么还是 4.3a?4.3a 可以说是苹果审核里最难处理的条款之一,属于兜底杀条款,一旦命中,反复提交只会加重风险,严重会关联开发者账号。

wuxianda1030的博客 203

JS - 进阶

JavaScript的隐式类型转换遵循严格规范,核心为转原始值、数字、字符串和布尔值。对象通过Symbol.toPrimitive、toString或valueOf转换,加法运算中任一操作数为字符串则拼接,否则转数字相加;==会尝试类型转换,建议使用===。事件循环(EventLoop)中,同步代码执行后清空微任务队列(如Promise.then),再渲染界面并执行宏任务(如setTimeout)。微任务优先级高于宏任务,且可嵌套执行。async/await本质是微任务,用于简化异步编程。

D_xw_的博客 309

React 错误边界 Error Boundary

用类组件 ErrorBoundary 隔离渲染错误,讲清能接住/接不住、重置策略与上报。

JudithHuang的博客 296

Android 开发入门实践(十三):用 Intent、UiState 和 Reducer 理解 MVI 的状态更新

本文记录第141—145课对MVI架构的入门实践,通过“返回列表”功能逐步构建意图(NewsIntent)、状态(NewsUiState)与状态转换(reduce)机制。基于单向数据流,用户操作生成意图,ViewModel通过Reducer根据旧状态计算新状态,并通过StateFlow更新Compose界面。代码实现清晰分离关注点,强化了对状态管理、事件驱动与数据流的理解。

Easyhood的博客 316
上一篇: 电商系统集成GenUI SDK实操指南
下一篇: TinyRobot Bubble:为 AI 对话而生的 Vue 3 消息气泡组件
OpenTiny社区
博客等级 码龄4年 1540粉丝 266原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值